C# 多线程 线程池(ThreadPool) 2 如何控制线程池?
生活随笔
收集整理的這篇文章主要介紹了
C# 多线程 线程池(ThreadPool) 2 如何控制线程池?
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
線程池啟動(dòng)了,但是沒有方法去控制線程池,如果子線程出現(xiàn)了問題,難道線程池就死了嗎?
我們可以設(shè)置線程池的線程數(shù)量,進(jìn)行加入任務(wù),線程池會(huì)自動(dòng)分配并且合理的執(zhí)行,但是控制不了又有啥意思呢。
線程池里線程的執(zhí)行不影響主線程的運(yùn)行的。
線程池中有一個(gè)東西叫做 信號(hào)燈 下面是一個(gè)例子:
?
代碼的信號(hào)燈的作用,當(dāng)任務(wù)全部投放在線程池中,我們開啟了阻塞線程池。
之后,我們又在執(zhí)行的函數(shù)中,添加了代碼,也就是
很明顯,我們判斷了當(dāng)前執(zhí)行的數(shù)量以及我們項(xiàng)目的總數(shù)量。如果達(dá)到總數(shù)量,則代表線程池已經(jīng)執(zhí)行完畢,我們可以監(jiān)控他是否完畢,
當(dāng)代碼:myEvent.WaitOne(); 執(zhí)行了,它不僅阻塞,他會(huì)等待。等到我們的myEvent.Set(); 信號(hào)發(fā)出之后,即可恢復(fù)繼續(xù)執(zhí)行。
總結(jié)
以上是生活随笔為你收集整理的C# 多线程 线程池(ThreadPool) 2 如何控制线程池?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Cacti+Nagios完全攻略(二)整
- 下一篇: docker学习实践之路[第一站]环境安