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