当前位置:  技术问答>linux和unix

socket+多进程+多线程

    来源: 互联网  发布时间:2016-03-23

    本文导语:  想请问下 在Linux下 如何实现主进程accept()后开一个线程处理,而当线程数大于10时,另开一个进程,该进程又可以包含10个处理线程处理之后的10个连接。以实现一个线程死亡仅导致同进程的这些线程死。 ...

想请问下
在Linux下 如何实现主进程accept()后开一个线程处理,而当线程数大于10时,另开一个进程,该进程又可以包含10个处理线程处理之后的10个连接。以实现一个线程死亡仅导致同进程的这些线程死。

|
父子进程加共享内存进行管理,父进程在调用listen后fork一个子进程,在子进程中进行accept,并且在共
享内存中做该子进程相应的标记,当有tcp连接到来时,子进程生成线程进行连接的处理,并且设定共享内存
中相关的值,当该值到达一定的数目时,子进程不在调用accept获取新的连接。父进程检测共享内存中的标
记值,当到达一定的数目时fork新的进程进行处理。

|
建议楼主看看select 或者 poll ,如果连接数多,可以看看epoll

|
直接epoll好了

|
完全没有必要又开进程,又开线程!完全可以采用select提供的IO多路复用技术,如果是访问量很大,CPU成为了最主要的屏劲,可以结合多线程技术来实现!不要一味地fork,fork....

    
 
 

您可能感兴趣的文章:

  • 线程间可否通过管道传递SOCKET句柄?还有其他方式传递SOCKET么?
  • 如果两个线程操作同一个Socket,一个线程recv,另一个send。这样会不会导致程序莫名其妙的退出
  • 多线程socket申请有无可能产生冲突?
  • socket 多线程编程
  • 多线程和socket结合
  • 请教:多线程使用同一个socket进行数据收发会出现什么问题?
  • socket实现多文件并发传输,求助多线程实现问题?
  • 请问关于多线程SOCKET的问题
  • 多线程socket程序莫名其妙接收到SIGALRM信号问题。
  • 多线程中socket的问题
  • socket read阻塞:一个线程关闭另一个线程错误
  • 请问关于socket客户端因事件启动新线程的问题.高手请进
  • 一个关于socket线程池问题
  • 多线程close() socket套接字的问题
  • 请问可以在一个Servlet里使用多线程和SOCKET吗?
  • 关于linux下多线程socket通讯的问题
  • Unix domain socket可用于同一个进程中的不同线程么?
  • 多余SOCKET服务器来说,用哪种线程安全锁性能最高?
  • socket通讯时如何为线程池分配Recv任务?
  • 如何在主进程共享子线程中accept得到的socket号?
  • 求教一个关于子进程与父进程socket描述符的一个问题
  • 多进程socket编程问题
  • 这个socket程序的服务进程开始服务后,为什么总是两个进程?
  • 当进程处于socket读阻塞模式中,外部SIGNAL发生,此时信号相应响应函数可否进行socket写?
  • 怎么让多个进程共用一个socket
  • 如何使用另外进程的socket
  • 进程信号是不是也是socket?
  • 进程和socket的问题
  • 请问如何判断从raw socket发出的包是哪个进程发送的?
  • unix下,多进程socket 服务器问题
  • socket发送端、接收端同一机器,kill掉接收端进程,发送端也被kill?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.net类socket的类成员方法: socket定义及介绍
  • re socket编程中 ACCEPT返回的socket与原socket(他参数中的)端口号一样吗?
  • java命名空间java.nio.channels类socketchannel的类成员方法: socket定义及介绍
  • libevent2需要从socket读一段数据写入一个socket中,同时发送给另一个socket
  • java命名空间java.nio.channels类serversocketchannel的类成员方法: socket定义及介绍
  • socket 通讯开发包 Simple Sockets
  • java命名空间java.nio.channels类datagramchannel的类成员方法: socket定义及介绍
  • C++ Socket 库 C++ Sockets
  • java命名空间java.net类socket的类成员方法: getsendbuffersize定义及介绍
  • vc做的的socket应用和unix下socket?
  • java命名空间java.net类socket的类成员方法: getreceivebuffersize定义及介绍
  • QSocketDevice ( int socket, Type type )中那个 int socket 是哪里来得?
  • java命名空间java.net类socket的类成员方法: gettrafficclass定义及介绍
  • socket编程 通过man socket, 没有找到socket函数的第一参数该填什么 怎样利用man手册
  • java命名空间java.net类socket的类成员方法: getport定义及介绍
  • [FreeBSD] 大神,求解,control socket : can‘t to any socket
  • java命名空间java.net类socket的类成员方法: getlocalport定义及介绍
  • 两个 Socket 互相通信,其中一个如何判断另一个 Socket 是否已经意外断开了连接?
  • java命名空间java.net类socket的类成员方法: getinetaddress定义及介绍
  • 大家帮忙推荐一本linux socket编程的入门书,我刚接触socket,谢谢!!
  • java命名空间java.net类socket的类成员方法: isconnected定义及介绍
  • 我的ping程序怎么老是出现Socket operation on non-socket


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3