線程池
創(chuàng)建線程和銷毀線程是一個(gè)昂貴的操作,要耗費(fèi)大量的時(shí)間。由于操作系統(tǒng)必須調(diào)度可運(yùn)行的線程并執(zhí)行上線文切換,所以太多的線程還對(duì)性能不利。
為了改善這個(gè)情況,clr包含了代碼來管理他自己的線程池。
線程池是你的應(yīng)用程序能使用的線程集合。
線程池內(nèi)部會(huì)維護(hù)一個(gè) 操作請(qǐng)求隊(duì)列。應(yīng)用程序執(zhí)行一個(gè)異步請(qǐng)求操作時(shí),將一個(gè)記錄項(xiàng)(entry)追加到線程池的隊(duì)列中。線程池的代碼從這個(gè)對(duì)立中
提取記錄項(xiàng),將這個(gè)記錄項(xiàng)派發(fā)(dispatch)給一個(gè)線程池線程。
當(dāng)線程池完成任務(wù)后,線程不會(huì)被銷毀。相反,線程會(huì)回到線程池,在哪里進(jìn)入空閑狀態(tài),等待相應(yīng)另一個(gè)請(qǐng)求。由于線程不銷毀自身,所以不在再產(chǎn)生額外的性能損失;