課程
/后端開發(fā)
/Java
/細(xì)說(shuō)Java多線程之內(nèi)存可見性
不變式是指什么類型的式子
2015-05-16
源自:細(xì)說(shuō)Java多線程之內(nèi)存可見性 4-5
正在回答
這里面有兩個(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 setLow(int value) { ? ? ? ?if (value > upper) ? ? ? ? ? ? system.out.print("......."); ? ? ? ?low = value; ? ?} ? ?public void setUp(int value) { ? ? ? ?if (value < low) ? ? ? ? ? ?system.out.print(".......");
? ? ? ?up = value; ? ?}}
初始值是0和100,如果有兩個(gè)線程同時(shí)操作set函數(shù),一比如A線程操作setlow(4),B線程setup(3),最后結(jié)果是4和3。
meetyu 提問(wèn)者
_曲終散
qq_夜39度_0 回復(fù) _曲終散
還是因?yàn)関olatile不能實(shí)現(xiàn)原子性。
同問(wèn)啊。
其他變量:是指的volatile變量,還是普通變量?
不變式:是什么樣的?
舉報(bào)
用兩種方式實(shí)現(xiàn)內(nèi)存可見性,代領(lǐng)大家深層次學(xué)習(xí)Java中的內(nèi)存
9 回答不是說(shuō)volatile不保證原子性嗎?為什么對(duì)于64位類型的變量用volatile修飾?
1 回答為什么兩個(gè)volatile變量在不變式中就會(huì)使得volatile線程不安全?
1 回答原子性是什么意思?
3 回答為什么共享變量的可見性一定是private
1 回答為什么休眠后會(huì)包證線程的原子性呢?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2015-05-28
這里面有兩個(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 setLow(int value) {
? ? ? ?if (value > upper)
? ? ? ? ? ? system.out.print(".......");
? ? ? ?low = value;
? ?}
? ?public void setUp(int value) {
? ? ? ?if (value < low)
? ? ? ? ? ?system.out.print(".......");
? ? ? ?up = value;
? ?}
}
初始值是0和100,如果有兩個(gè)線程同時(shí)操作set函數(shù),一比如A線程操作setlow(4),B線程setup(3),最后結(jié)果是4和3。
2017-08-01
還是因?yàn)関olatile不能實(shí)現(xiàn)原子性。
2015-05-20
同問(wèn)啊。
其他變量:是指的volatile變量,還是普通變量?
不變式:是什么樣的?