我正在計劃製作一個有很多對等網絡連接的軟件。通常我會爲每個連接創建一個自己的線程來發送和接收數據,但在這種情況下,使用300-500以上的連接將意味着不斷創建和銷燬很多線程,這將是一個很大的開銷,我猜。然後讓一個線程順序處理所有的連接可能會減慢一些事情的速度。 (我對此並不確定)如何找出最佳的線程數量?
問題是:有多少線程可以優化來處理這類問題?是否有可能在軟件中計算它,以便它可以決定自己在舊計算機上創建更少的線程,而不是使用更多的資源,更多的使用新線程?
這是一個理論問題,我不想讓它的實現或語言相關。然而,我認爲很多人會建議像「只使用ThreadPool
,它會處理這樣的東西」,所以我們說它不會是一個.NET應用程序。 (我可能必須使用代碼的其他一些地方在老德爾福的項目,這樣的語言很可能是德爾福或許C++,但它尚未決定。)
請參閱http://stackoverflow.com/questions/481970/how-many-threads-is-too-many/481979#481979 – paxdiablo 2010-10-29 06:29:06
什麼是您的操作系統?視窗? – 2010-10-29 14:13:58
是的,它是Windows。 – ytg 2010-10-29 16:18:02