c Thread是如何終止,休眠的

2021-10-09 05:36:03 字數 446 閱讀 1729

thread:執行緒,我不想講

開啟:不用我多說,相當於就在這個程式內部執行了乙個程序

休眠:很多人不知道,其實將這個執行緒進行類似於掛載(可以理解為插入了thread.sleep())(詳細見我的文章 「c# gc的"bug」")

讓gc認為這個執行緒仍然正在執行,所以說不會觸發**條件,所以說當你換起這個執行緒的時候,他就會仍然從當前位置執行,並且變數不會丟失

終止:其實這個你們一定想不到,執行緒的終止其實是靠引發異常來終止的,但是我為什麼沒有看到這些異常呢,try你忘了?**獲了

這樣終止也有乙個缺陷,首先不保證他能完全**獲,因為他要區分是否為使用者異常,所以說很可能會出現異常,可能會對變數可能會有一定的傷害,尤其是記憶體對映,記憶體掛載,因為一旦執行緒退出gc就會開始**

這樣做可能會導致執行緒假死

所以說我們一般就不會呼叫這個方法,而是讓執行緒自己退出

《後續補充》

如何終止前端發起的請求?

當前端請求傳送並且響應未完成時,終止請求,不再返回資料 1,一些列表頁介面比較慢,改變查詢條件後傳送查詢請求,這樣就和上次的查詢請求形成兩個非同步請求,有時可能就會發生本次請求先得到響應資料,然後上一次請求後得到響應資料,這樣在頁面上的查詢結果就會出現bug。不是單純的防抖和節流就能解決問題 2,一...

如何設定ubuntu的自動休眠時間

相信很多在學習linux的過程中,總會遇到,每隔一段時間系統就會自動休眠,這樣還要重新輸入密碼,當然對於處在實驗狀態下的作業系統沒有什麼重要的內容怕別人看 另外如果你經常使用像putty這樣子的遠端登入軟體的話,如果你的linux作業系統進入自動鎖屏狀態的時候,你的遠端登入端也將自動下線,看似簡單的...

oracle 如何終止儲存過程的執行

0.查詢正在執行的儲存過程 select from v db object cache where locks 0 and pins 0 and type procedure 1.在v access檢視中找到要停止程序的sid 舉例 儲存過程名 crh entry select t.from v a...