最近在看一個(gè)同事的代碼,代碼的本意是在main方法中開(kāi)啟10個(gè)線程,用這10個(gè)線程來(lái)處理一批業(yè)務(wù)邏輯,在某一時(shí)刻當(dāng)你命令console退出的時(shí)候,這個(gè)

時(shí)候不是立即讓console退出,而是需要等待10個(gè)線程把檢測(cè)狀態(tài)之后的業(yè)務(wù)邏輯執(zhí)行完之后再退出,這樣做是有道理的,如果強(qiáng)行退出會(huì)有可能造成子線程的業(yè)

務(wù)數(shù)據(jù)損壞,沒(méi)毛病吧,業(yè)務(wù)邏輯大概就是這樣。

 

一:現(xiàn)實(shí)場(chǎng)景

由于真實(shí)場(chǎng)景的代碼比較復(fù)雜和繁瑣,為了方便演示,我將同事所寫(xiě)的代碼抽象一下,類(lèi)似下面這樣,看好了咯~~~

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營(yíng)銷(xiāo)培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營(yíng)銷(xiāo)培訓(xùn)

 1 class Program 2     { 3         private static int workThreadNums = 0; 4  5         private static bool isStop = false; 6  7         static void Main(string[] args) 8         { 9