+ 我來(lái)回答
回答最高可+2積分
最贊回答 / 鬼羽子
32bit數(shù)據(jù)的讀寫(xiě)是一個(gè)原子操作,對(duì)64bit數(shù)據(jù)加volatile僅僅只是保證數(shù)據(jù)的讀寫(xiě)具有不可重入性以及可見(jiàn)性——這樣就夠了。第一個(gè)32bit讀完之后,才允許讀第二個(gè)32bit,且必須從主線程內(nèi)存中刷新,這樣可以保證數(shù)據(jù)的有效性。
2015-05-17
已采納回答 / passionfoure
這里面有兩個(gè)VOLATILE變量,它包含了一個(gè)不變式就是LOW<UP(?if (value > upper) 和???if (value < low)?)public class A { ? ?private volatile?int low=0;? ?private volatile?int?up=100;? ?public int getLow() { return low; } ? ?public int getUp() { return up; } ? ?public void ...
2015-05-16
可是我感覺(jué)用sleep來(lái)確定順序有點(diǎn)坑啊,睡多長(zhǎng)時(shí)間合適呢?
2015-05-12
最新回答 / wangbihuiccit
what are u question
最贊回答 / meetyu
volatile本身不保證獲取和設(shè)置操作的原子性,僅僅保持修改的可見(jiàn)性。但是java的內(nèi)存模型保證聲明為volatile的long和double變量的get和set操作是原子的
2015-05-06
已采納回答 / meetyu
volatile本身不保證獲取和設(shè)置操作的原子性,僅僅保持修改的可見(jiàn)性。但是java的內(nèi)存模型保證聲明為volatile的long和double變量的get和set操作是原子的
2015-04-28