CLR via C# 讀書筆記 1-1 何時使用線程或者線程池
一般來說在盡可能的情況下使用線程池
除了以下的4個情況
- 需要手動控制線程運行在非默認的優先級上(不推薦)
- 需要表現為前臺線程
- 需要長時間的運行一個任務
- 想要手動控制一個線程的生命周期(例如Abort)
-------------------------------
其實我覺得還有兩個重要的方面
線程池是全局共享的,也就是說一個程序往線程池里面塞入一些任務 ,那么必然會影響到其他人
極端的情況,就是你占用了所有的線程池中的對象,而其他程序就無法正常運行了(包括.net本身的一些線程)
那么關鍵就是
不要長時間或者大量占用線程池,除非能夠確定當前程序是這個服務器上最重要的程序
在較大壓力的服務器上,或者你預期程序會消耗大量的資源,最好自己實現一個可控制的線程池(例如CodeProject上面的一些開源實現),這樣你可以更好的控制和調度系統資源的使用.
浙公網安備 33010602011771號