第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

把舞臺(tái)休眠Thread.sleep(50)去掉后,根本一次都沒(méi)有調(diào)用隋軍和農(nóng)民軍作戰(zhàn),這是為什么?

如下圖所示,調(diào)用的兩個(gè)線程while循環(huán)都沒(méi)有運(yùn)行,難度是因?yàn)镵eepRunning直接為false嗎?但是從顯示的執(zhí)行順序來(lái)看,應(yīng)該false傳入是在后面。求解答

586d0da9000156dd05000315.jpg

586d0da90001118905000257.jpg



正在回答

4 回答

java多線程可以近似看成同時(shí)執(zhí)行,不過(guò)本質(zhì)上計(jì)算機(jī)能同時(shí)工作的線程數(shù)是有限個(gè)的(取決于你的CPU)

老師演示的時(shí)候農(nóng)民軍和隋軍交替結(jié)果看起來(lái)應(yīng)該是至少有兩個(gè)線程是同時(shí)工作的。而你這個(gè)明顯是僅分配給了這個(gè)程序一個(gè)線程。

多線程是為了解決某些應(yīng)用上需要等待其他的結(jié)果(比如瀏覽器訪問(wèn)一個(gè)網(wǎng)址需要等待服務(wù)器返回HTML文件才能繼續(xù)執(zhí)行顯示頁(yè)面的操作)才能繼續(xù)執(zhí)行,那么這段時(shí)間cpu可以去執(zhí)行其他線程的程序。但是如果這個(gè)線程可以一口氣執(zhí)行下去的話,中途其他線程是沒(méi)有辦法執(zhí)行的。

-----------------以下是針對(duì)代碼的--------------------------

你只有一個(gè)線程能同時(shí)工作。那么兩個(gè)軍隊(duì)的線程啟動(dòng)后是處于等待狀態(tài)的,并沒(méi)有真的執(zhí)行。

然后舞臺(tái)線程沒(méi)有看見(jiàn)sleep(就是你刪去的那個(gè))所以繼續(xù)執(zhí)行下去,輸出,關(guān)鍵人物的生命,設(shè)置名字,再一個(gè)輸出,然后直接就執(zhí)行到了keeprunning=false的兩句。

再之后看見(jiàn)sleep,關(guān)鍵人物線程和兩個(gè)軍隊(duì)線程爭(zhēng)用cpu,不過(guò)兩個(gè)軍隊(duì)線程即使?fàn)幱玫絚pu也會(huì)因?yàn)閗eeprunning導(dǎo)致線程直接結(jié)束,那么舞臺(tái)線程休眠的時(shí)間(這個(gè)是確定的值,沒(méi)到的話再找個(gè)線程執(zhí)行)就只有關(guān)鍵人物有輸出操作,關(guān)鍵人物操作以后舞臺(tái)線程也到了時(shí)間的話,舞臺(tái)線程占用cpu,繼續(xù)執(zhí)行。


java初學(xué),為個(gè)人理解所得,dalao請(qǐng)輕噴

5 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕粉2220415365 提問(wèn)者

為什么軍隊(duì)線程在開(kāi)始start()會(huì)處于等待狀態(tài)呢? 而后面flase傳入時(shí) 又會(huì)執(zhí)行呢? 感覺(jué)有時(shí)候線程的輸出無(wú)法解釋
2017-01-06 回復(fù) 有任何疑惑可以回復(fù)我~
#2

bbug 回復(fù) 慕粉2220415365 提問(wèn)者

為什么等待,你電腦太差。你開(kāi)發(fā)個(gè)100線程的的程序,那么你需要100核的cpu去執(zhí)行,如果在算上操作系統(tǒng)這類(lèi)的,100核的cpu還不夠呢。 至于后面執(zhí)行的代碼你沒(méi)截圖到,再往下找是不是有個(gè)sleep,這個(gè)sleep導(dǎo)致舞臺(tái)線程暫停,處理器去做其他事情,其他事情那就是兩個(gè)線程,執(zhí)行線程就是調(diào)用run方法,run方法開(kāi)始先判斷keeprunning,拿到false然后跳出循環(huán),run方法結(jié)束。兩個(gè)線程的run都做完
2017-01-06 回復(fù) 有任何疑惑可以回復(fù)我~
#3

bbug 回復(fù) 慕粉2220415365 提問(wèn)者

然后沒(méi)有其他事情可做,cpu就啥也不干,等舞臺(tái)線程的sleep到時(shí)間了然后就關(guān)鍵人物的start,但是也不執(zhí)行關(guān)鍵人物的線程,畢竟舞臺(tái)線程沒(méi)執(zhí)行完也沒(méi)被暫停,然后往下看代碼,關(guān)鍵人物的join,那么其他所有線程都得等關(guān)鍵人物的線程去執(zhí)行完再去執(zhí)行,那么跳到關(guān)鍵人物的線程。等關(guān)鍵人物線程的代碼都執(zhí)行完了再回到舞臺(tái)線程。
2017-01-06 回復(fù) 有任何疑惑可以回復(fù)我~
#4

bbug 回復(fù) 慕粉2220415365 提問(wèn)者

之前沒(méi)細(xì)看代碼,發(fā)現(xiàn)最早時(shí)候說(shuō)“關(guān)鍵人物線程和兩個(gè)軍隊(duì)線程爭(zhēng)用cpu”是錯(cuò)的,那時(shí)候關(guān)鍵人物還沒(méi)start。。。抱歉
2017-01-06 回復(fù) 有任何疑惑可以回復(fù)我~
#5

慕粉2220415365 提問(wèn)者 回復(fù) bbug

謝謝!
2017-01-06 回復(fù) 有任何疑惑可以回復(fù)我~
查看2條回復(fù)

看明白了,總結(jié)一下。Stage線程是一個(gè)總線程,在運(yùn)行期間調(diào)用兩個(gè)軍隊(duì)的線程和關(guān)鍵人物的線程,按照Stage總線程的執(zhí)行順序,若Stage線程不休眠的話,Stage線程會(huì)一直執(zhí)行下去,兩個(gè)軍隊(duì)的線程會(huì)在Stage線程執(zhí)行完再進(jìn)行;在Stage線程執(zhí)行完前Boolean變量設(shè)為false,因此兩個(gè)軍隊(duì)線程執(zhí)行時(shí)沒(méi)有輸出,關(guān)鍵人物有輸出是因?yàn)檎{(diào)用了join()方法

0 回復(fù) 有任何疑惑可以回復(fù)我~

因?yàn)槟銢](méi)有將舞臺(tái)線程休眠,農(nóng)民和隋軍線程開(kāi)始后,兩個(gè)線程都處于可運(yùn)行狀態(tài),而舞臺(tái)線程也是如此,cpu選擇線程是隨機(jī)的(在沒(méi)有設(shè)置優(yōu)先級(jí)時(shí)),從你的結(jié)果來(lái)看,cpu選擇了舞臺(tái)線程,創(chuàng)建了程咬金,并在陳咬金說(shuō)出:“希望人們安居樂(lè)業(yè)”后,又選擇了農(nóng)民和隋軍進(jìn)程,即開(kāi)始打仗,我覺(jué)得我講的是比那個(gè)最佳答案好的,你覺(jué)得呢

1 回復(fù) 有任何疑惑可以回復(fù)我~

理論上說(shuō)都會(huì)兩個(gè)軍隊(duì)進(jìn)程都會(huì)執(zhí)行完一個(gè)while循環(huán)吧?

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

把舞臺(tái)休眠Thread.sleep(50)去掉后,根本一次都沒(méi)有調(diào)用隋軍和農(nóng)民軍作戰(zhàn),這是為什么?

我要回答 關(guān)注問(wèn)題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)