epoll+多线程的疑问

jody_go jody_go 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
最近在网上看到一个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的高手来分析分析。
...全文
评论 7
收藏 已收藏
分享
返回顶部
jody_go
Linux/Unix社区 23,224 成员 74,535 内容