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

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

細(xì)說Java多線程之內(nèi)存可見性

難度中級(jí)
時(shí)長57分
學(xué)習(xí)人數(shù)
綜合評(píng)分9.63
181人評(píng)價(jià) 查看評(píng)價(jià)
9.9 內(nèi)容實(shí)用
9.6 簡潔易懂
9.4 邏輯清晰

最贊回答 / RobinYGH
olatile本質(zhì)是在告訴jvm當(dāng)前變量在寄存器中的值是不確定的,需要從主存中讀取,synchronized則是鎖定當(dāng)前變量,只有當(dāng)前線程可以訪問該變量,其他線程被阻塞住.volatile僅能使用在變量級(jí)別,synchronized則可以使用在變量,方法.volatile僅能實(shí)現(xiàn)變量的修改可見性,但不具備原子特性,而synchronized則可以保證變量的修改可見性和原子性.volatile不會(huì)造成線程的阻塞,而synchronized可能會(huì)造成線程的阻塞.volatile標(biāo)記的變量不會(huì)被編譯器優(yōu)化,而s...

最新回答 / 絕望中進(jìn)擊的蝸牛
volatile只能保證代碼的可見性,而不能保證代碼的原子性。所以,當(dāng)代碼包含其他共享變量時(shí),如果被其他線程執(zhí)行,那么值就會(huì)發(fā)生改變。

最新回答 / 0110號(hào)建筑師
private修飾對數(shù)據(jù)提供保護(hù),可以通過set方法賦值,再通過get方法取值

最新回答 / weibo_王延武_0
單核沒關(guān)系。多核有關(guān)系。多核由于java為了提升效率進(jìn)行了指令重排,所以執(zhí)行順序會(huì)不同。

最贊回答 / 洋__
呵呵,提問者沒搞懂,大家不要被這個(gè)人帶偏了,他才在誤人子弟!估計(jì)提問者是想說內(nèi)存可見了,怎么還會(huì)執(zhí)行結(jié)果不一致呢?誰說過保證了內(nèi)存可見性就保證執(zhí)行結(jié)果是一致的??別人是內(nèi)部線程類,視頻里read()操作和write()操作加了synchronized是原子性的,但是又不保證read()和write()哪個(gè)先執(zhí)行,所以會(huì)出現(xiàn)2個(gè)結(jié)果,如果是先read()執(zhí)行,那么result就是0,如果write()先執(zhí)行,那么result就是6。最后老師通過延時(shí)保證write()先執(zhí)行,結(jié)果就是只有6。建議多學(xué)習(xí),少抱怨...

最贊回答 / smile_evil
你讓write線程休眠一會(huì)。就會(huì)出現(xiàn)其他狀況。因?yàn)榇a短執(zhí)行的太快,線程沒有進(jìn)行切換就已經(jīng)執(zhí)行完畢了,所以結(jié)果只有6.

最新回答 / pythonxx
單線程并且有數(shù)據(jù)依賴關(guān)系

最新回答 / 慕斯0128424
這么跟你解釋:一行java代碼被cpu執(zhí)行的時(shí)候執(zhí)行的是若干條cpu指令,synchronized對應(yīng)到cpu執(zhí)行若干條指令,但是volatile也對應(yīng)若干條指令,相同的是他們對應(yīng)的指令有一些相同的,即有重疊,但是又有差異,于是功能有相同也有差異。他們的使用場景也是如此。你現(xiàn)在不適合去理解深沉原理,先學(xué)會(huì)用,用對場景。

最新回答 / 慕斯0128424
synchronized是java語言特性,join()方法你可以理解為僅僅是Thread類作者提供的一個(gè)覺得可能較為通用的工具方法。在B對象的方法中執(zhí)行ThreadA.join()方法,其結(jié)果是在B對象方法調(diào)用處,通過死循環(huán)檢測ThreadA是否死亡(isAlive()方法),如果死亡(理解為ThreadA的run()方法運(yùn)行結(jié)束)則繼續(xù)B對象的方法后續(xù)代碼執(zhí)行。建議閱讀join()方法源碼

最新回答 / wei嘗不可
引用 @追風(fēng)少年 : ?一般是考慮安全性,對數(shù)據(jù)提供保護(hù),可以通過set方法賦值,再通過get方法取值,這就是java封裝的思想

最新回答 / qq_可口可樂_4
線程是搶占式執(zhí)行的,sleep意味著當(dāng)前線程在一段時(shí)間內(nèi)不執(zhí)行操作,可是該線程的工作內(nèi)存中已經(jīng)得到了number,沒有改變number的值意味著主內(nèi)存中的值也沒有改變,在sleep這段時(shí)間內(nèi)其他線程又得到主內(nèi)存中的number,這個(gè)number與sleep中的number可能一樣(要是沒有其它線程),這樣的話這2個(gè)線程在最終執(zhí)行完之后等于number++只執(zhí)行一次

最新回答 / 雲(yún)中菩提
首先,你這休眠的是線程 main,并不會(huì)影響到synDemo讀寫線程的正常運(yùn)行。而且就算你休眠的是synDemo的寫線程,但只要它拿到了鎖,那么讀線程就會(huì)是堵塞狀態(tài),直到寫線程釋放了鎖。最好還是先看看書或關(guān)于線程的博文,對同步,鎖有所了解,然后再來看此視頻。
課程須知
學(xué)習(xí)本課程前,你需要熟練掌握J(rèn)ava的基礎(chǔ)語法,熟悉Java多線程的基礎(chǔ)知識(shí),以及synchronized實(shí)現(xiàn)線程同步的方法。
老師告訴你能學(xué)到什么?
1、內(nèi)存可見性 2、指令重排序 3、as-if-serial語義 4、synchronized實(shí)現(xiàn)可見性 5、volatile實(shí)現(xiàn)可見性

微信掃碼,參與3人拼團(tuán)

微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復(fù)購買,感謝您對慕課網(wǎng)的支持!

本次提問將花費(fèi)2個(gè)積分

你的積分不足,無法發(fā)表

為什么扣積分?

本次提問將花費(fèi)2個(gè)積分

繼續(xù)發(fā)表請點(diǎn)擊 "確定"

為什么扣積分?

舉報(bào)

0/150
提交
取消