簡單說下我的觀點,僅供你參考哈: 1:先考慮你的請求是IO密集還是CPU密集?我說的IO密集是指需要read和write收發訊息的網路IO,也就是通訊;CPU密集例如需要經過運算才能出結果,且時間較長。 2:如果是第一種IO密集型的,那我覺得你沒必要把所有的請求都交給線程池去處理。如果沒有讀寫檔案等磁碟IO耗時的操作,甚至都不一定使用執行緒池。這種方式下 One loop per thread模型無疑是最有效率的了,說白了就是在單一EPOLL中完成所有的讀寫(網路資料的讀寫,而不是讀檔案)和定時事件。 3:如果是CPU密集的,那用thread_pool沒有問題,就看你的設定的執行緒數和程式碼有沒有問題了。
簡單說下我的觀點,僅供你參考哈:
1:先考慮你的請求是IO密集還是CPU密集?我說的IO密集是指需要read和write收發訊息的網路IO,也就是通訊;CPU密集例如需要經過運算才能出結果,且時間較長。
2:如果是第一種IO密集型的,那我覺得你沒必要把所有的請求都交給線程池去處理。如果沒有讀寫檔案等磁碟IO耗時的操作,甚至都不一定使用執行緒池。這種方式下 One loop per thread模型無疑是最有效率的了,說白了就是在單一EPOLL中完成所有的讀寫(網路資料的讀寫,而不是讀檔案)和定時事件。
3:如果是CPU密集的,那用thread_pool沒有問題,就看你的設定的執行緒數和程式碼有沒有問題了。
這個問題沒有實際環境也不好回答,我全當拋磚引玉,不對的地方望指出。