亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

synchronized講的有問題呀!這樣做并不能實現可見性呀!不要誤人子弟呀

synchronized講的有問題呀!這樣做并不能實現可見性呀!不要誤人子弟呀

正在回答

4 回答

呵呵,提問者沒搞懂,大家不要被這個人帶偏了,他才在誤人子弟!估計提問者是想說內存可見了,怎么還會執行結果不一致呢?誰說過保證了內存可見性就保證執行結果是一致的??別人是內部線程類,視頻里read()操作和write()操作加了synchronized是原子性的,但是又不保證read()和write()哪個先執行,所以會出現2個結果,如果是先read()執行,那么result就是0,如果write()先執行,那么result就是6。最后老師通過延時保證write()先執行,結果就是只有6。建議多學習,少抱怨,只是能力不足,不要說老師不行哈。

4 回復 有任何疑惑可以回復我~
#1

慕的地3745111

說的沒錯
2018-10-15 回復 有任何疑惑可以回復我~

似乎沒搞懂不要亂說

0 回復 有任何疑惑可以回復我~

那么你說是哪里有問題呢??

0 回復 有任何疑惑可以回復我~

????????synchronized不僅可以解決一個線程看到對象處于不一致的狀態,還可以保證進入同步方法或者同步代碼塊中的每個線程都看到由同一個鎖保護之前所有的修改效果。這就是synchronized的互斥性可見性。

????????老師講的也說的很清楚啊:

線程執行互斥代碼的過程:

  1. 獲得互斥鎖

  2. 清空工作內存

  3. 從主內存拷貝變量的最新副本到線程工作內存

  4. 執行代碼

  5. 將更改后的最新的共享變量的值刷新到主內存

  6. 釋放互斥鎖

0 回復 有任何疑惑可以回復我~
#1

洋__

呵呵,提問者沒搞懂,大家不要被這個人帶偏了,他才在誤人子弟!估計提問者是想說內存可見了,怎么還會執行結果不一致呢?誰說過保證了內存可見性就保證執行結果是一致的??別人是內部線程類,視頻里read()操作和write()操作加了synchronized是原子性的,但是又不保證read()和write()哪個先執行,所以會出現2個結果,如果是先read()執行,那么result就是0,如果write()先執行,那么result就是6。最后老師通過延時保證write()先執行,結果就是只有6。建議多學習,少抱怨,只是能力不足,不要說老師不行哈。
2018-10-07 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

synchronized講的有問題呀!這樣做并不能實現可見性呀!不要誤人子弟呀

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號