...用于多線程網絡服務器。我想在多個線程之間傳遞數據。目前,我正在使用套接字,主線程阻塞在select()上,而工作線程阻塞在recv()上,盡管我覺得可能有更高級或預包裝的方式來處理C ++中的此任務。
3 回答

森林海
TA貢獻2011條經驗 獲得超2個贊
我會讓工作線程在線程池中等待。
然后主機等待選擇(用于讀取和寫入)。
隨著數據的到來,主服務器將作業添加到線程池中。添加每個作業后,線程將喚醒以執行該作業并返回到池中。這樣,您就不會使用recv()阻止線程在特定端口上等待,并且固定的子線程集可以處理所有傳入流量。
在現成的對象中支持此功能的Currentl庫:
ACE:http://www.cs.wustl.edu/~schmidt/ACE.html
Poco:http://pocoproject.org/
- 3 回答
- 0 關注
- 194 瀏覽
添加回答
舉報
0/150
提交
取消