標籤:collect min 重用 main 管理 不同的 mic 重複 console
簡介:
一個託管線程的建立需要數千個CPU周期,並且當發生線程切換時也會帶來明顯的開銷。考慮線程的重用,避免不斷重複建立新的線程是提高系統效率的一種方式。
線程池是一種提供效率的方式,它建立好一些線程由線程池引擎管理,開發人員將需要處理的業務或操作封裝成為【工作項目】工作項目被傳遞給線程池隊列,由線程池中的不同的背景工作執行緒挑選並執行。當執行完畢後,線程並不被銷毀,而是繼續選擇其他的工作項目。
代碼:
using System;using System.Collections.Generic;using System.Text;using System.Threading;namespace Sample8_1_threadpool_basic{ class Program { public static void Work1() { System.Console.WriteLine("ThreadWork1 run { "); for (int i = 0; i < 100; i++) { System.Console.WriteLine("ThreadWork1 *****: " + i); } System.Console.WriteLine("ThreadWork1 run } "); } public static void Work2() { System.Console.WriteLine("ThreadWork2 run { "); for (int i = 0; i < 100; i++) { System.Console.WriteLine("ThreadWork2 =====: " + i); } System.Console.WriteLine("ThreadWork2 run } "); } static void Main(string[] args) { ThreadPool.QueueUserWorkItem((stat) => { Work1(); }); ThreadPool.QueueUserWorkItem((stat) => { Work2(); }); int a; int b; ThreadPool.GetMinThreads(out a,out b); Console.WriteLine("a="+a+";b="+b); Console.ReadLine(); } }}
C#並行編程の----Threadpool