当前位置: 技术问答>linux和unix
请教关于多线程epoll_wait的问题?
来源: 互联网 发布时间:2016-12-14
本文导语: 我想问个关于epoll_wait的问题,我的程序在初始化的时候根据CPU的核数,还有数量来分配了适当的线程数,每个线程创建一个epoll对象,工作线程起来后,会阻塞在epoll_wait函数处,当有用户发送数据包的时候,会进行处理,为了...
我想问个关于epoll_wait的问题,我的程序在初始化的时候根据CPU的核数,还有数量来分配了适当的线程数,每个线程创建一个epoll对象,工作线程起来后,会阻塞在epoll_wait函数处,当有用户发送数据包的时候,会进行处理,为了避免线程同步带来的问题,我以会话为单位来进行操作。每个会话只会在指定的epoll对象中,由于程序的功能所需,需要设定计时器。保证1分钟切换会话中的下一个用户,由于在这个过程中有可能会出现:用户的添加或删除,而且还有大量的网络传输操作都是与用户直接相关的,并不容易被拆出来进行加锁,这时为了避免线程同步问题,我模拟用户给指定的会话发送一个模拟的消息,来做相应的处理操作。这样就可以避免了线程同步带来的问题,可是这是用UDP来模拟的,毕竟也是不安全的,不可靠的。我现在想换一个进程间通讯的东西绑定在epoll事件中,不知道在这种线程间通讯手段是不是可行的,因为我需要激活epoll_wait.哪位大神有好的办法也可以提下,我现在就32分了,都给你出了
|
你的需求是什么? 貌似是你想建立多个session,每个session对应一个epoll,然后一个定时器,每个一定的时间处理一个session...... 你的问题是??