今天給大家分享多執行緒中sleep、join、yield的區別,因為之前有很多粉絲私信我,問我這個問題,所以今天特意給大家整理了一下,如果還不會可以私信我找我要學習資料。1、sleep()方法
2021-06-08 08:32:01
今天給大家分享多執行緒中sleep、join、yield的區別,因為之前有很多粉絲私信我,問我這個問題,所以今天特意給大家整理了一下,如果還不會可以私信我找我要學習資料。
1、sleep()方法
其實主要的就是他是讓其他執行緒走,自己進行休眠,但是自己卻不會釋放物件鎖,也就是說,如果有同步鎖的時候,其他執行緒不能訪問共享資料。
注意該方法要捕獲異常 比如有兩個執行緒同時執行(沒有Synchronized),一個執行緒優先順序為MAX_PRIORITY,另一 個為MIN_PRIORITY,如果沒有Sleep()方法,只有高優先順序的執行緒執行完成後,低優先順序 的執行緒才能執行;但當高優先順序的執行緒sleep(5000)後,低優先順序就有機會執行了。 總之,sleep()可以使低優先順序的執行緒得到執行的機會,當然也可以讓同優先順序、高優先順序的 執行緒有執行的機會。
2、yield() 方法
yield() 這個方法從以上註釋可以看出,也是一個休眠自身執行緒的方法,同樣不會釋放自身鎖的標識,區別在於它是沒有參數的,即yield()方 法只是使當前執行緒重新回到可執行狀態,
所以執行yield()的執行緒有可能在進入到可執行狀態 後馬上又被執行,另外yield()方法只能使同優先順序或者高優先順序的執行緒得到執行機會,這也 和sleep()方法不同。
3、join() 方法
這個方法比較有意思,Thread的非靜態方法join()讓一個執行緒B「加入」到另外一個執行緒A的尾部。在A執行完畢之前, B不能工作。
保證當前執行緒停止執行,直到該執行緒所加入的執行緒完成為止。然而,如果它加入的執行緒沒有存活,則當前執行緒不需要停止。
相關文章
今天給大家分享多執行緒中sleep、join、yield的區別,因為之前有很多粉絲私信我,問我這個問題,所以今天特意給大家整理了一下,如果還不會可以私信我找我要學習資料。1、sleep()方法
2021-06-08 08:32:01
在日常工作中,經常會使用excel表格進行一些簡單的加減乘除的計算,可能你還不知道在word中其實也是可以進行加減乘除雲端計算的。 1、以計算表格兩列之積來示例說明怎麼操作,如
2021-06-08 08:31:46
正如預期的那樣,Apple 在 WWDC 2021 主題演講中提供了 iOS 15 的預覽,重點介紹了 FaceTime 和通知的一些變化,以及更多的隱私控制。FaceTime 進行了一些重大更新,空間音訊可在螢
2021-06-08 08:31:00
在鴻蒙 OS 2.0 釋出 5 天后,蘋果也出手了。美國太平洋時間 2021 年 6 月 7 日,又是一年 WWDC,蘋果的這次開發者大會顯得有些無聊:沒有任何硬體,只有 iOS、macOS、iPadOS 和 watch
2021-06-08 08:28:25
編輯部 發自 凹非寺 量子位 報道 | 公眾號 QbitAI在全球疫情還未緩解的情況下,今年,蘋果的WWDC開發者大會,和去年一樣全場除了庫克「空無一人」。但這一次蘋果賣了個萌,雖然沒有
2021-06-08 07:47:00
今天凌晨,一年一度的蘋果開發者大會(WWDC21)如期而至。在歷時近兩個小時的主題演講中,蘋果帶來了一系列系統和應用功能的更新,其中除了大家熟悉的蘋果軟體生態「四大件」——iOS
2021-06-08 07:29:46