要點:1、當在主線程中建立了乙個執行緒,那麼該執行緒的isbackground預設是設定為false的。
2、當主線程退出的時候,isbackground=false的執行緒還會繼續執行下去,直到執行緒執行結束。
3、只有isbackground=true的執行緒才會隨著主線程的退出而退出。
4、當初始化乙個執行緒,把thread.isbackground=true的時候,指示該執行緒為後台執行緒。後台執行緒將會隨著主線程的退出而退出。
5、原理:只要所有前台執行緒都終止後,clr就會對每乙個活在的後台執行緒呼叫abort()來徹底終止應用程式。
net的公用語言執行時(common language runtime,clr)能區分兩種不同型別的執行緒:前台執行緒和後台執行緒。這兩者的區別就是:應用程式必須執行完所有的前台執行緒才可以退出;而對於後台執行緒,應用程式則可以不考慮其是否已經執行完畢而直接退出,所有的後台執行緒在應用程式退出時都會自動結束。
既然前台執行緒和後台執行緒有這種差別,那麼我們怎麼知道該如何設定乙個執行緒的isbackground屬性呢?下面是一些基本的原則:對於一些在後台執行的執行緒,當程式結束時這些執行緒沒有必要繼續執行了,那麼這些執行緒就應該設定為後台執行緒。比如乙個程式啟動了乙個進行大量運算的執行緒,可是只要程式一旦結束,那個執行緒就失去了繼續存在的意義,那麼那個執行緒就該是作為後台執行緒的。而對於一些服務於使用者介面的執行緒往往是要設定為前台執行緒的,因為即使程式的主線程結束了,其他的使用者介面的執行緒很可能要繼續存在來顯示相關的資訊,所以不能立即終止它們。這裡我只是給出了一些原則,具體到實際的運用往往需要程式設計者的進一步仔細斟酌。
一般後台執行緒用於處理時間較短的任務,如在乙個web伺服器中可以利用後台執行緒來處理客戶端發過來的請求資訊。而前台執行緒一般用於處理需要長時間等待的任務,如在web伺服器中的監聽客戶端請求的程式,或是定時對某些系統資源進行掃瞄的程式。
C多執行緒程式設計 執行緒的屬性
3 執行緒的分離狀態 4 執行緒的優先順序 5 執行緒的棧位址 6 執行緒棧大小 7 執行緒的棧保護區大小 8 執行緒的排程策略 1 一般使用pthread create函式建立乙個執行緒,使用預設引數,即將該函式的第二個引數設為null,對大多數程式來說,使用預設屬性就夠了,但我們還是有必要來了解...
C 中的屬性
1.屬性就是對字段的封裝,其本質就是乙個get方法和乙個set方法。value是個關建字,它其實就是乙個引數,用來指代使用者輸入的內容。using system namespace 2019 10 26set public int age set 2.即使不需要做任何邏輯驗證,也不能把字段宣告稱pu...
C 中的屬性
屬性是代表類的例項或類中的乙個資料項的成員。屬性指的是一組兩個匹配的 稱為訪問器的方法 public 返回型別 識別符號 set訪問器總是 get訪問器總是 屬性跟字段的相同點 屬性跟字段的不相同點 訪問器的重點如下 寫入和讀取屬性的訪問器時,會被隱式呼叫 注意 不能顯式地呼叫訪問器,就跟呼叫函式那...