一尘不染

寻找具有与Google Go频道相似功能的C或C ++库

go

\

…用于多线程网络服务器。

我想在多个线程之间传递数据。目前,我正在使用套接字,主线程阻塞在select()上,而工作线程阻塞在recv()上,尽管我觉得可能有更高级或预包装的方式来处理C++中的此任务。


阅读 203

收藏
2020-07-02

共1个答案

一尘不染

我会让工作线程在线程池中等待。

然后主机等待选择(用于读取和写入)。

随着数据的到来,主服务器将作业添加到线程池中。添加每个作业后,线程将唤醒以执行该作业并返回到池中。这样,您就不会使用recv()阻止线程在特定端口上等待,并且固定的子线程集可以处理所有传入流量。

在现成的对象中支持此功能的Currentl库:

2020-07-02