最近在看一個同事的代碼,代碼的本意是在main方法中開啟10個線程,用這10個線程來處理一批業(yè)務(wù)邏輯,在某一時刻當(dāng)你命令console退出的時候,這個
時候不是立即讓console退出,而是需要等待10個線程把檢測狀態(tài)之后的業(yè)務(wù)邏輯執(zhí)行完之后再退出,這樣做是有道理的,如果強行退出會有可能造成子線程的業(yè)
務(wù)數(shù)據(jù)損壞,沒毛病吧,業(yè)務(wù)邏輯大概就是這樣。
一:現(xiàn)實場景
由于真實場景的代碼比較復(fù)雜和繁瑣,為了方便演示,我將同事所寫的代碼抽象一下,類似下面這樣,看好了咯~~~
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