...用于多线程网络服务器。我想在多个线程之间传递数据。目前,我正在使用套接字,主线程阻塞在select()上,而工作线程阻塞在recv()上,尽管我觉得可能有更高级或预包装的方式来处理C ++中的此任务。
3 回答
森林海
TA贡献2011条经验 获得超2个赞
我会让工作线程在线程池中等待。
然后主机等待选择(用于读取和写入)。
随着数据的到来,主服务器将作业添加到线程池中。添加每个作业后,线程将唤醒以执行该作业并返回到池中。这样,您就不会使用recv()阻止线程在特定端口上等待,并且固定的子线程集可以处理所有传入流量。
在现成的对象中支持此功能的Currentl库:
ACE:http://www.cs.wustl.edu/~schmidt/ACE.html
Poco:http://pocoproject.org/
- 3 回答
- 0 关注
- 171 浏览
添加回答
举报
0/150
提交
取消