2014-01-25 58 views

回答

4

併發線程數受限於可用資源。但是請記住,每個線程都使用最少量的內存(默認情況下通常爲1MB,除非您指定的內存不同),而且您運行的線程越多,操作系統管理它們的工作就越多,而且時間越多隻是爲了保持它們之間的切換,所以它們有公平的機會運行。一條好的經驗法則是不要有比可用CPU多的線程,因爲這將是在任何給定時刻可以物理運行的最大線程數。但是你肯定可以擁有比CPU更多的線程,操作系統會簡單地調度它們,如果你一次運行太多,這會降低性能。因此,您需要考慮爲什麼您首先使用線程,並根據性能,內存使用情況,開銷等情況進行相應的計劃。多線程編程並非微不足道,所以不要輕易對待它。

+0

那麼如果我們是64位應用程序,應用程序的性能會不同。 –

+0

你將可以訪問更多的內存,並且可以創建更多的線程,這意味着使用更多的內存,更多的時間管理線程等。因此,您仍然需要注意資源使用情況並進行平衡以提高效率。 –

1

這是依賴於內存的,對於您可以創建多少個線程或其他對象沒有固定的限制。在某些時候,如果你分配的內存太多,你可能會遇到「內存不足」的異常,所以你應該考慮你需要調用和執行多少線程。還要記住你調用的線程越多,你應該期待所有線程的處理時間減少。所以如果你一次擁有太多的併發線程,你可能無法獲得你正在尋找的性能。我希望這個對你有用!

相關問題