通過設置線程池的最小線程數來提高task的效率,SetMinThreads。


http://www.cnblogs.com/Charltsing/p/taskpoolthread.html

task默認對線程的調度是逐步增加的,連續多次運行並發線程,會提高占用的線程數,而等若干秒不運行,線程數又會降低。這樣,會影響程序多次運行的效率。

即使使用了TaskCreationOptions.LongRunning參數,依然效率偏低。對於一些固定執行時間的線程,我們可以提高線程池的最小線程數,來顯著提高task多線程的效率。

ThreadPool.SetMinThreads(100, 100);

 

提高最小線程數之后,可以不使用LongRunning參數。

 

測試結果(2000線程):

               狀態                                     時間

沒有設置任何參數,首次運行                     48s

沒有設置任何參數,連續運行多次                 15s~12s

未設置最小線程,設置LongRunning           15s

設置最小線程100,未設LongRunning        8s

設置最小線程100,設置LongRunning        16s

 

以上結果供大家參考。

聯系QQ 564955427      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM