我準備編寫一個多線程網絡應用程序。目前我想知道什麼是我的程序最好的線程模式。整個應用程序最多可處理1000個描述符(本地文件,各種協議的網絡連接以及定時器和信號處理的附加描述符)。應用程序將針對Linux進行優化。計劃將在普通個人電腦上運行,所以我認爲,他們將至少有Pentium 4處理器設計多線程應用程序(尋找設計模式)
這是我目前的想法:
- 一個線程使用的epoll將處理網絡I/O 。
- 第二線程將 處理本地狀I/O(磁盤I/O, 定時器,信號處理)使用的epoll
- 第三線程 將處理UI(CLI,GTK +或QT)
處理單獨線程中的每個網絡連接會由於上下文切換過多而導致CPU死亡。
也許有更好的方法來做到這一點?
您是否知道有關設計多核應用程序的任何文檔/書籍?我正在尋找如下問題的答案:什麼是有理數的線程?等等。