linux平台下多线程网络库开发
一尺丈量 2017-03-06 04:11:32 现在正在学习性地写一个linux平台下的高性能并发网络库,采用多线程模式。现在希望我编写的这个库能够支持以下这种模式:一个主线程,这个线程做的事件是在一个loop中接收连接(即accept);多个子线程,这些线程关注主线程中已经连接的socket的读与写事件,但不accept。也就是说主线程accept后,将accept返回 的文件描述符交给子线程,主线程继续进行accept;然后子线程负责这个socket的交互。现在的一个问题是,主线程accept后,如何将这个socket的fd将到子线程去,并且子线程做到立刻对这个fd的读写事件进行关注(使用poll或者epoll),当子线程正在等待poll返回时,那个这个fd就无法加入到正在poll的描述符中,那么就可能造成处理不及时,这要怎么解决呢?