Thread.sleep and Thread.yield

簡書 占小狼
轉(zhuǎn)載請注明原創(chuàng)出處贪绘,謝謝秧了!

前言

在日常的開發(fā)過程中厕吉,我們通過會使用Thread.sleep模擬一個耗時的任務執(zhí)行過程。

線程sleep或yield之后發(fā)生了什么琐簇?在深入細節(jié)之前蒸健,先看看線程的基本概念。

線程概念

線程是操作系統(tǒng)執(zhí)行任務的基本單位婉商,處理器的數(shù)量決定了不可能所有的線程同時得到運行似忧,這就意味著需要通過某種算法,如window下的搶占式丈秩,進行線程的調(diào)度橡娄。


Paste_Image.png

一個線程從開始到結(jié)束可能會有上述幾種狀態(tài),之間可以互相轉(zhuǎn)換癣籽。

Thread.sleep

Sleep意味著線程主動告訴操作系統(tǒng)自己要休息 n 毫秒。

  1. Thread.sleep(0) 進入就緒狀態(tài)
    如果n=0時滤祖,意味著當前線程的時間片沒有用完筷狼,主動放棄自己剩下的時間片,進入就緒狀態(tài)匠童。這種情況下只能調(diào)度優(yōu)先級相等或更高的線程埂材,意味著優(yōu)先級低的線程很難獲得時間片,很可能永遠都調(diào)用不到汤求。當沒有符合條件的線程俏险,會一直占用 CPU 時間片,造成 CPU 100%占用率扬绪。
  2. Thread.sleep(1) 進入阻塞狀態(tài)
    如果n>0竖独,會強制當前線程放棄剩余時間片,并休息n秒(因為不是實時操作系統(tǒng)挤牛,時間無法保證精確莹痢,一般可能會滯后幾毫秒或一個時間片),進入阻塞狀態(tài)墓赴。這種情況下所有其它就緒狀態(tài)的線程都有機會競爭時間片竞膳,而不用在乎優(yōu)先級。無論有沒有符合的線程诫硕,都會放棄 CPU 時間坦辟,因此 CPU 占用率較低。

Thread.yield

Yield 的中文翻譯為 “讓步章办,讓位”锉走,這里意思是當前線程主動讓出時間片滨彻,并讓操作系統(tǒng)調(diào)度其它就緒態(tài)的線程使用時間片。

  • 如果調(diào)用 Yield挠日,只是把當前線程放入到就緒隊列中疮绷,而不是阻塞隊列
  • 如果沒有找到其它就緒態(tài)的線程,則當前線程繼續(xù)運行
  • 比 Thread.Sleep(0) 速度要快嚣潜,可以讓低于當前優(yōu)先級的線程得以運行

END冬骚。
我是占小狼。
在魔都艱苦奮斗懂算,白天是上班族只冻,晚上是知識服務工作者。
讀完我的文章有收獲计技,記得關(guān)注和點贊哦喜德,如果非要打賞,我也是不會拒絕的啦垮媒!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末舍悯,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子睡雇,更是在濱河造成了極大的恐慌萌衬,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件它抱,死亡現(xiàn)場離奇詭異秕豫,居然都是意外死亡,警方通過查閱死者的電腦和手機观蓄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門混移,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人侮穿,你說我怎么就攤上這事歌径。” “怎么了撮珠?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵沮脖,是天一觀的道長。 經(jīng)常有香客問我芯急,道長勺届,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任娶耍,我火速辦了婚禮免姿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘榕酒。我一直安慰自己胚膊,他們只是感情好故俐,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著紊婉,像睡著了一般药版。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上喻犁,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天槽片,我揣著相機與錄音,去河邊找鬼肢础。 笑死还栓,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的传轰。 我是一名探鬼主播剩盒,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼慨蛙!你這毒婦竟也來了辽聊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤期贫,失蹤者是張志新(化名)和其女友劉穎身隐,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體唯灵,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年隙轻,在試婚紗的時候發(fā)現(xiàn)自己被綠了埠帕。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡玖绿,死狀恐怖敛瓷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情斑匪,我是刑警寧澤呐籽,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站蚀瘸,受9級特大地震影響狡蝶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜贮勃,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一贪惹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧寂嘉,春花似錦奏瞬、人聲如沸枫绅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽并淋。三九已至,卻和暖如春珍昨,著一層夾襖步出監(jiān)牢的瞬間县耽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工曼尊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留酬诀,地道東北人。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓骆撇,卻偏偏與公主長得像瞒御,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子神郊,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 該文章轉(zhuǎn)自:http://blog.csdn.net/evankaka/article/details/44153...
    加來依藍閱讀 7,335評論 3 87
  • 寫在前面的話: 這篇博客是我從這里“轉(zhuǎn)載”的肴裙,為什么轉(zhuǎn)載兩個字加“”呢?因為這絕不是簡單的復制粘貼涌乳,我花了五六個小...
    SmartSean閱讀 4,711評論 12 45
  • 本文主要講了java中多線程的使用方法蜻懦、線程同步、線程數(shù)據(jù)傳遞夕晓、線程狀態(tài)及相應的一些線程函數(shù)用法宛乃、概述等。 首先講...
    李欣陽閱讀 2,442評論 1 15
  • 前言 多線程并發(fā)編程是Java編程中重要的一塊內(nèi)容蒸辆,也是面試重點覆蓋區(qū)域征炼,所以學好多線程并發(fā)編程對我們來說極其重要...
    嘟爺MD閱讀 7,305評論 21 272
  • 這是一篇寫于2016年的文章。寫于畢業(yè)之前躬贡,寫于未知之前谆奥。 交朋友這件事情我從來都不勉強自己,合得來就做朋友拂玻,合不...
    陌柔桑閱讀 284評論 0 0