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

為了賬號安全,請及時綁定郵箱和手機立即綁定

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

難度中級
時長57分
學習人數(shù)
綜合評分9.63
181人評價 查看評價
9.9 內(nèi)容實用
9.6 簡潔易懂
9.4 邏輯清晰
這么好的教程,忍不住點贊!
synchronized 鎖住的是變量和變量的操作,而volatile鎖住的只是變量,而且該變量的值不能依賴它本身的值 volatile算是一種輕量級的同步鎖
當一個線程訪問object的一個synchronized(this)同步代碼塊時,另一個線程仍然可以訪問該object中的非synchronized(this)同步代碼塊。
當兩個并發(fā)線程訪問同一個對象object中的這個synchronized(this)同步代碼塊時,一個時間內(nèi)只能有一個線程得到執(zhí)行。另一個線程必須等待當前線程執(zhí)行完這個代碼塊以后才能執(zhí)行該代碼塊。
不錯,講得很好
老師,很優(yōu)秀
感謝老師,講的非常好
D是不是錯誤的啊,
這個例子是《Effective Java》里面的吧,Concurrency那一節(jié)的
老師是在鵝廠工作的嗎?在知乎上看到過您
解決讀取 半個變量的情況應該是加 synchronized關(guān)鍵字,volatile不不保證原子性的。。
這道題應該AD都錯了吧
volatile和synchronized 的最大區(qū)別就是 前者不能保證變量或者代碼操作的原子性,而后者可以。。。原子性:要么操作完全,要么不操作。即,要么操作為1要么為0。。而volatile可能值執(zhí)行某項操作的一部分,比如 操作了0.6,這樣子,算什么事兒嘛,對吧。。所以,這個就是區(qū)別。。。

個人總結(jié),如有錯誤,望批評指正。發(fā)私信
因為線程的執(zhí)行本身就是不確定的,加了synchronized關(guān)鍵字只能確?;コ庠L問這段代碼以及變量的可見性,即某線程在修改共享變量(通過自己的工作內(nèi)存來修改)時,其他的所有線程無法獲得共享變量的信息。所以synchronized并不能保證程序的執(zhí)行順序。所以即使加了synchronized也可能會出現(xiàn)0。順序是隨機的,看jVM內(nèi)存以及CUP的調(diào)度了。
課程須知
學習本課程前,你需要熟練掌握Java的基礎(chǔ)語法,熟悉Java多線程的基礎(chǔ)知識,以及synchronized實現(xiàn)線程同步的方法。
老師告訴你能學到什么?
1、內(nèi)存可見性 2、指令重排序 3、as-if-serial語義 4、synchronized實現(xiàn)可見性 5、volatile實現(xiàn)可見性

微信掃碼,參與3人拼團

微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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

友情提示:

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

本次提問將花費2個積分

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

為什么扣積分?

本次提問將花費2個積分

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

為什么扣積分?

舉報

0/150
提交
取消