Thread系列——ThreadPool
生活随笔
收集整理的這篇文章主要介紹了
Thread系列——ThreadPool
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.線程池,顧名思義,就是裝著若干個線程的池子。
2.出現理由
??? 可以更為有效的使用線程。
??? 如何理解這個“有效”?
???? (1)我們知道線程在使用之前一般是處于休眠狀態的,這樣浪費了大量資源創建它,但是卻沒有使用它,真的是浪費資源。
?????(2)使用線程時,線程之間的切換也會浪費大量資源。
???而線程池,就是為了避免上述兩個問題,從而更為有效的利用資源來完成線程之間的調度進而完成工作。
3.線程池工作原理
????
?? 如上圖所示,線程池中維護著若干空閑進程,空閑線程的個數默認為每個處理器25個,最小值是系統的處理器的個數。
?? 當有任務時,不需要程序員另外啟動線程,而是通過ThreadPool.QueueUserWorkItem()方法將任務放到線程池中,線程池會將任務交給合適的線程去執行。其中,該方法有兩個參數WaitCallBack和Object,分別是線程啟動時調用的方法和在方法中要用到的參數。
?? 當線程池中的空閑線程都忙著時,線程池要么創建新的空閑線程,要么等待其他線程結束。
?
? 這樣設計,可以使任務循環利用線程池中已有的線程,而減少了線程創建和銷毀的資源的占用,大大提高了效率。
?
轉載于:https://www.cnblogs.com/ATually/archive/2010/10/21/1857504.html
總結
以上是生活随笔為你收集整理的Thread系列——ThreadPool的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Log4j 入门总结
- 下一篇: NET Framework 安装时出现错