2011-03-02 18 views
0

我正在創建一個服務器以將數據發送到許多持久套接字。我選擇了REACTOR設計模式,它建議讓多個線程將數據發送到套接字上。爲什麼服務器上有多個線程

我不明白什麼是更好的: - 擁有一個線程所有的數據發送到插座 - 或者有幾個線程在整個插座發送數據。

我看到它的方式是我有2個內核。所以我一次只能做兩件事。這意味着我有1個工作線程和1個線程來發送數據?

爲什麼在線程之間進行上下文切換時多線程發送數據會更好?

回答

0

請參閱關於thttpd的文檔以瞭解爲什麼單線程非blocking IO is good。事實上,它對靜態文件很有意義。

但是,如果您正在執行CGI,您可能會有一段腳本運行很長時間。更好地阻止所有更快更簡單的流量,特別是如果腳本中存在無限循環錯誤並最終被殺死的話!使用線程用戶遇到的平均響應時間將更好 - 如果某些請求非常耗時。

如果提供的文件來自磁盤,並且不在主內存中,則可以使用類似的參數。

相關問題