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

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

加上static, synchronized 關鍵字呢??

如果用static 修飾車票的數(shù)量,然后在在車票減少的地方加上synchronized可以嗎?

public class Ticket extends Thread {

private static int tickets = 5;

public void run() {

try {

Thread.sleep(100);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

while (tickets > 0) {

synchronized (this) {

tickets--;

System.out.println(Thread.currentThread().getName() + " has " + tickets + " tickets left!");

}

Thread.yield();

}

}

}

個人親測不行,但是不知道問題在哪?敬求指教!??!

正在回答

4 回答

若夢厲害,說的對。

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

synchronized的使用有問題,synchronized是對象鎖。

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

你的代碼有兩處錯誤

1.用繼承Thread的方法實現(xiàn)多線程,需要new多個對象,這也是你在共享變量是加static的原因,所以,你使用的鎖對象this是不同的對象,所以不能實現(xiàn)線程的互斥.可以使用該類的字節(jié)碼對象Ticket.class作為鎖對象.

2.如果已經(jīng)實現(xiàn)了互斥,你需要在同步代碼塊中增加一個判斷條件,用來終止程序繼續(xù)執(zhí)行,否則會出現(xiàn)打印負數(shù)的情況.因為, ?未獲得鎖的線程會在循環(huán)內(nèi)等待,當一條線程將tickets--到0的時候,其他等待的線程獲得鎖以后會繼續(xù)執(zhí)行后續(xù)代碼,導致運行結(jié)果不準確.

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

用你的代碼可以實現(xiàn)多個線程同時賣票啊,不知道你說的是什么情況

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

舉報

0/150
提交
取消

加上static, synchronized 關鍵字呢??

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

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

幫助反饋 APP下載

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

公眾號

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