.net的公用語言執行時(common language runtime,clr)能區分兩種不同型別的執行緒:前台執行緒和後台執行緒。這兩者的區別就是:應用程式必須執行完所有的前台執行緒才可以退出;而對於後台執行緒,應用程式則可以不考慮其是否已經執行完畢而直接退出,所有的後台執行緒在應用程式退出時都會自動結束。
.net環境使用thread建立的執行緒預設情況下是前台執行緒,即執行緒屬性isbackground=
false,在程序中,只要有乙個前台執行緒未退出,
程序就不會終止。主線程就是乙個前台執行緒。
而後台執行緒不管執行緒是否結束,只要所有的前台執行緒都退出(包括正常退出和異常退出)後,程序就會自動終止。一般後台執行緒用於處理時間較短的任務,如在乙個web伺服器中可以利用後台執行緒來處理客戶端發過來的請求資訊。而前台執行緒一般用於處理需要長時間等待的任務,如在web伺服器中的監聽客戶端請求的程式,或是定時對某些系統資源進行掃瞄的程式。
前台執行緒和後台執行緒
net的公用語言執行時 common language runtime,clr 能區分兩種不同型別的執行緒 前台執行緒和後台執行緒。這兩者的區別就是 應用程式必須執行完所有的前台執行緒才可以退出 而對於後台執行緒,應用程式則可以不考慮其是否已經執行完畢而直接退出,所有的後台執行緒在應用程式退出時都會...
關於C 前台執行緒和後台執行緒的區別
1 什麼是前台執行緒?static void main string args static void threadmain 注釋 以上程式執行順序是先執行完畢主線程,此時程式不會關閉而是會等待新增的 前台 執行緒執行完畢以後,結束整個程式的執行。2 什麼是後台執行緒?static void mai...
c 前台執行緒和後台執行緒
前台執行緒 在主線程執行結束後,若前台執行緒沒有執行完則會阻止主線程的關閉 後台執行緒 在主線程執行結束後,整個執行緒會結束 class threadsample public void countnumbers prints thread.currentthread.name,i static v...