非同步執行緒學習筆記(六) 前台執行緒和後台執行緒

2021-10-25 00:24:49 字數 612 閱讀 5103

在預設情況下,我們手動建立的執行緒都是前台執行緒,而只要有前台執行緒在執行,應用程式就會一直處在活躍的狀態,當然,一旦所有前台執行緒都結束了,即便還有後台執行緒存在,應用程式也會結束。

此外,我們還要知道,前台執行緒和後台執行緒只是執行緒的狀態,和執行緒的優先順序及分配的時間片大小無關。

那麼怎麼建立和查詢乙個執行緒是不是後台執行緒呢?

我們可以通過isbackground屬性來判斷。

下面看乙個例子:

static

void

main

(string

args)

worker.

start()

;}

在這個例子裡,我們建立了乙個執行緒,當主線程形參args大於零的時候,將這個執行緒設為後台執行緒。

最終的結果是:假如args<=0,我們建立的執行緒預設是前台執行緒,一直等待我們的輸入才結束。但是假如args>0的話,我們建立的執行緒就變成了後台執行緒,主線程是唯一的前台執行緒,一旦主線程跑完,後台執行緒也隨之結束,所以debug會立刻結束,不會等待。

假如執行緒以這種方式結束的話,後台執行緒的finally塊不會執行。

最後一點:假如應用程式無法正常退出,這代表著還有活躍的前台執行緒。

前台執行緒和後台執行緒

net的公用語言執行時 common language runtime,clr 能區分兩種不同型別的執行緒 前台執行緒和後台執行緒。這兩者的區別就是 應用程式必須執行完所有的前台執行緒才可以退出 而對於後台執行緒,應用程式則可以不考慮其是否已經執行完畢而直接退出,所有的後台執行緒在應用程式退出時都會...

c 前台執行緒和後台執行緒

前台執行緒 在主線程執行結束後,若前台執行緒沒有執行完則會阻止主線程的關閉 後台執行緒 在主線程執行結束後,整個執行緒會結束 class threadsample public void countnumbers prints thread.currentthread.name,i static v...

(二)前台執行緒和後台執行緒

1.獲取執行緒狀態 2.終止執行緒 執行緒池執行的都是後台執行緒 執行緒池只能用於時間比較短的任務 static void main string args static void main string args 任務的層次結構 父任務等待子任務執行完成才完成 模擬線程爭用 using syste...