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

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

被synchronized修飾,依然出現(xiàn)兩種結(jié)果0和6,是我代碼寫得有問題?

public?class?SynchronizedDemo2?{

	private?boolean?ready?=?false;
	private?int?result?=?0;
	private?int?number?=?1;

	public?synchronized?void?write()?{
		ready?=?true;
		number?=?2;
	}

	public?synchronized?void?read()?{
		if?(ready)?{
			result?=?number?*?3;
		}
		System.out.println("result="?+?result);
	}

	private?class?ReadWriteThread?extends?Thread?{
		private?boolean?flag;

		public?ReadWriteThread(boolean?flag)?{
			this.flag?=?flag;
		}

		@Override
		public?void?run()?{
			if?(flag)?{
				write();
			}?else?{
				read();
			}
		}

	}

	public?static?void?main(String[]?args)?{

		for?(int?i?=?0;?i?<?5000;?i++)?{
			SynchronizedDemo2?demo?=?new?SynchronizedDemo2();
			demo.new?ReadWriteThread(true).start();
			demo.new?ReadWriteThread(false).start();
		}

	}

}


正在回答

3 回答

?出現(xiàn)0是因為讀線程先得到了執(zhí)行,讀線程執(zhí)行完,寫線程才執(zhí)行,這個我里面也有講到,你稍微注意下,在“synchronized實現(xiàn)可見性(下)”的第03:30之后!另外,慕課網(wǎng)這點估計剪切的估計太快了,有點不太容易注意到,可以在寫線程和讀線程之間加個休眠操作,讓寫線程執(zhí)行完,讀線程在執(zhí)行,也可以使用wait和notify來控制線程執(zhí)行的順序!

2 回復(fù) 有任何疑惑可以回復(fù)我~
#1

龍頭老大灬

我認(rèn)為不是這樣,如果一個對象有多個synchronized方法,只要一個線程訪問了其中的一個synchronized方法,其它線程不能同時訪問這個對象中任何一個synchronized方法,它的問題主要是由于內(nèi)部鎖發(fā)生了變化,把代碼改成這樣應(yīng)該就沒問題了吧。 SynchronizedDemo2 demo = new SynchronizedDemo2(); for (int i = 0; i < 5000; i++) { demo.new ReadWriteThread(true).start(); demo.new ReadWriteThread(false).start(); }
2015-04-05 回復(fù) 有任何疑惑可以回復(fù)我~
#2

龍頭老大灬

不好意思,代碼看錯了,你說的們問題,確實是線程執(zhí)行的順序時間問題
2015-04-05 回復(fù) 有任何疑惑可以回復(fù)我~
#3

italycappuccino 提問者

thanks~非常感謝!
2015-04-07 回復(fù) 有任何疑惑可以回復(fù)我~
#4

慕斯卡4106679

這里為什么加了wait和notify會執(zhí)行寫線程先,再執(zhí)行讀線程,阻塞狀態(tài)怎么會影響順序呢?
2015-12-02 回復(fù) 有任何疑惑可以回復(fù)我~
#5

慕斯卡4106679 回復(fù) 龍頭老大灬

為什么使主線程阻塞,會保證執(zhí)行順序呢?
2015-12-02 回復(fù) 有任何疑惑可以回復(fù)我~
查看2條回復(fù)

synchronized加入后依然出現(xiàn)0,6的情況是正常的,我覺得假如synchronized是為了防止出現(xiàn)結(jié)果登錄3的情況,這里老師沒有講,我也不確定我說的是否是正確的。

1 回復(fù) 有任何疑惑可以回復(fù)我~

你的內(nèi)部鎖不是一個了

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

被synchronized修飾,依然出現(xiàn)兩種結(jié)果0和6,是我代碼寫得有問題?

我要回答 關(guān)注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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