epoll+多线程的疑问
最近在网上看到一个epoll+多线程的例子,
大概的代码描述如下:
main函数里面,依次调用epoll_create、socket、bind、listen、epoll_ctl后,
用pthread_create生成N个线程,
线程函数workerThread的描述如下:
在一个while(1)中调用epoll_wait,然后分别对返回的描述集进行判断,
这样的模式效率会高吗?会不会存在什么问题啊?还望懂epoll的高手来分析分析。
大概的代码描述如下:
main函数里面,依次调用epoll_create、socket、bind、listen、epoll_ctl后,
用pthread_create生成N个线程,
线程函数workerThread的描述如下:
在一个while(1)中调用epoll_wait,然后分别对返回的描述集进行判断,
if (event.data.fd == lisSock)
{
......
int sock = accept(lisSock, NULL, NULL);
......
}
else
{
if (event.events & EPOLLIN)
{
......
}
if (event.events & EPOLLOUT)
{
......
}
}
这样的模式效率会高吗?会不会存在什么问题啊?还望懂epoll的高手来分析分析。
...全文
相关推荐
Linux下使用EPoll+队列+多线程的C++实现
该源代码使用linux的网络IO多路复用模型epoll在建立tcpserver,对用队列来缓存请求,使用线程池来处理请求。
linux epoll多线程编程 例子
linux epoll多线程编程 例子
epoll+多线程代码
epoll+多线程的例子,本例子还有压力测试。
Linux网络编程(四)——epoll+多线程实现简单的聊天(linux 服务器端 windows客户端)
Linux网络编程(四)——epoll+多线程实现简单的聊天(linux 服务器端 windows客户端)
epoll 多线程 线程池
最近做工程用到了这些知识,因此总结一些这方面的资料,我认为还是比较有用的,通过这些资料,大概一天就可以学会噢~


