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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

關(guān)于線程的一個(gè)問題

關(guān)于線程的一個(gè)問題

我要變大神大神大大神 2016-12-30 13:56:00
賣票的問題,4個(gè)線程一起買100張票 public?class?Ticket?implements?Runnable?{ private?int?num?=?100; Object?obj?=?new?Object(); @Override public?void?run()?{ while?(true){ try{ Thread.sleep(10); }catch(InterruptedException?e){} if?(num?>?0){ System.out.println(Thread.currentThread().getName()+"...sale..."+num--); } } } } ----- public?class?TicketDemo?{ public?static?void?main(String[]?args)?{ Ticket?t?=?new?Ticket(); Thread?t1?=?new?Thread(t); Thread?t2?=?new?Thread(t); Thread?t3?=?new?Thread(t); Thread?t4?=?new?Thread(t); t1.start(); t2.start(); t3.start(); t4.start(); } } 運(yùn)行結(jié)果:為什么同一張票會(huì)被重復(fù)賣出去?,我想知道造成這一現(xiàn)象的原因和過程講解,求大神指導(dǎo)。 ? ? ? 我知道加個(gè)同步鎖就沒事啦~ ? ?可是我就想知道造成這一現(xiàn)象的過程和原因
查看完整描述

3 回答

已采納
?
四無(wú)小青年

TA貢獻(xiàn)88條經(jīng)驗(yàn) 獲得超43個(gè)贊

四個(gè)線程,每個(gè)線程都會(huì)讀取并打印num然后把num-1?,F(xiàn)在想象這么一種情況,線程一讀取了num=96,還沒來(lái)得及打印和執(zhí)行--操作,線程二也讀取了num=96,這樣就會(huì)造成問題所提情況。由于你沒有加鎖所以線程對(duì)num變量的讀寫是無(wú)序,他們并不會(huì)一個(gè)一個(gè)的自發(fā)排隊(duì)去讀寫這個(gè)數(shù),而是隨意讀寫數(shù)據(jù),這就會(huì)造成數(shù)據(jù)之間的讀寫不同步。若解惑,望采納

查看完整回答
反對(duì) 回復(fù) 2016-12-30
?
習(xí)慣受傷

TA貢獻(xiàn)885條經(jīng)驗(yàn) 獲得超1144個(gè)贊

1、你的代碼邏輯有問題,為什么呢?你的每個(gè)Ticket線程內(nèi)都有100張票,也就是樓上說的400張票,所以重復(fù)是肯定的。

2、如果讓這4個(gè)線程同時(shí)競(jìng)爭(zhēng)這100張票,先讓他們共享這個(gè)資源。

3、同步可以用 synchronized 關(guān)鍵字實(shí)現(xiàn)。


查看完整回答
1 反對(duì) 回復(fù) 2016-12-30
  • 四無(wú)小青年
    四無(wú)小青年
    樓主的邏輯沒錯(cuò),是你們的Java線程基礎(chǔ)沒學(xué)到家。在new Thread(Runnable)時(shí),樓主傳的是同一個(gè)Runnable任務(wù),所以會(huì)創(chuàng)建出來(lái)的線程會(huì)共享這個(gè)Runnable任務(wù)的變量,這是多線線程基礎(chǔ)知識(shí),不信你自己去試試。
?
silencecorner

TA貢獻(xiàn)10條經(jīng)驗(yàn) 獲得超3個(gè)贊

肯定要做同步處理的,正在買票的時(shí)候其他線程就不能對(duì)num進(jìn)行操作。最大的一個(gè)問題就是你賣的是400張票!

查看完整回答
反對(duì) 回復(fù) 2016-12-30
  • 3 回答
  • 0 關(guān)注
  • 1400 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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