C#.Net前臺執行緒與後臺執行緒的區別
.Net的公用語言執行時(Common Language Runtime,CLR)能區分兩種不同型別的執行緒:前臺執行緒和後臺執行緒。這兩者的區別就是:應用程式必須執行完所有的前臺執行緒才可以退出;而對於後臺執行緒,應用程式則可以不考慮其是否已經執行完畢而直接退出,所有的後臺執行緒在應用程式退出時都會自動結束。
.Net環境使用Thread建立的執行緒預設情況下是前臺執行緒,即執行緒屬性IsBackground=false,在程式中,只要有一個前臺執行緒未退出,程式就不會終止。主執行緒就是一個前臺執行緒。
.Net環境使用Thread建立的執行緒預設情況下是前臺執行緒,即執行緒屬性IsBackground=false,在程式中,只要有一個前臺執行緒未退出,程式就不會終止。主執行緒就是一個前臺執行緒。
而後臺執行緒不管執行緒是否結束,只要所有的前臺執行緒都退出(包括正常退出和異常退出)後,程式就會自動終止。一般後臺執行緒用於處理時間較短的任務,如在一個Web伺服器中可以利用後臺執行緒來處理客戶端發過來的請求資訊。而前臺執行緒一般用於處理需要長時間等待的任務,如在Web伺服器中的監聽客戶端請求的程式,或是定時對某些系統資源進行掃描的程式。
需要明白的概念性問題:
執行緒是寄託在程式上的,程式都結束了,執行緒也就不復存在了!
只要有一個前臺執行緒未退出,程式就不會終止!即說的就是程式不會關閉!(即在資源管理器中可以看到程式未結束。)
相關文章
- java--多執行緒之後臺執行緒Java執行緒
- 後臺執行緒(daemon)執行緒
- 程式與執行緒區別執行緒
- 程式與執行緒的區別執行緒
- mysql後臺執行緒詳解MySql執行緒
- PHP的執行緒安全與非執行緒安全版本的區別PHP執行緒
- Android中UI執行緒與後臺執行緒互動設計的5種方法AndroidUI執行緒
- InnoDB儲存引擎——後臺執行緒儲存引擎執行緒
- 多執行緒------執行緒與程式/執行緒排程/建立執行緒執行緒
- Linux執行緒與程式的區別Linux執行緒
- Linux程式與執行緒的區別Linux執行緒
- MSSQL資料庫後臺程式(執行緒)SQL資料庫執行緒
- 執行緒同步(windows平臺):臨界區執行緒Windows
- Java執行緒面試題(04) Java中程式與執行緒的真實區別Java執行緒面試題
- Java執行緒:執行緒的同步與鎖Java執行緒
- 【面試】執行緒程式區別面試執行緒
- 執行緒和程式的區別執行緒
- 程式和執行緒的區別執行緒
- 執行緒、執行緒與程式、ULT與KLT執行緒
- 【多執行緒總結(二)-執行緒安全與執行緒同步】執行緒
- linux程式前臺-後臺執行Linux
- 程式和執行緒的區別與聯絡執行緒
- Java多執行緒-鎖的區別與使用Java執行緒
- 多執行緒,執行緒類三種方式,執行緒排程,執行緒同步,死鎖,執行緒間的通訊,阻塞佇列,wait和sleep區別?執行緒佇列AI
- Java 執行緒和作業系統的執行緒有啥區別?Java執行緒作業系統
- MySQL 配置後臺InnoDB I/O執行緒數MySql執行緒
- 作業系統——執行緒與程式的區別與聯絡?什麼是執行緒安全?作業系統執行緒
- Java執行緒中斷與終止執行緒執行Java執行緒
- 執行緒同步(windows平臺):事件執行緒Windows事件
- 多執行緒-執行緒控制之休眠執行緒執行緒
- 多執行緒-執行緒控制之加入執行緒執行緒
- 多執行緒-執行緒控制之禮讓執行緒執行緒
- 多執行緒-執行緒控制之中斷執行緒執行緒
- Java多執行緒學習(3)執行緒同步與執行緒通訊Java執行緒
- 執行緒與執行緒池的那些事之執行緒池篇(萬字長文)執行緒
- Java多執行緒學習(1)建立執行緒與執行緒的生命週期Java執行緒
- 深入理解JVM(③)執行緒與Java的執行緒JVM執行緒Java
- 轉載_Linux程式與執行緒的區別Linux執行緒