課程
/后端開發(fā)
/Java
/細(xì)說多線程之Thread VS Runnable
為什么窗口賣出同一張票,難道票也是隨機(jī)的,我想每個(gè)窗口賣出不同的票,求大神老師指點(diǎn)!
2017-12-25
源自:細(xì)說多線程之Thread VS Runnable 2-3
正在回答
關(guān)鍵是ticketscount--這個(gè)操作不是原子的,你在public void run(){
????synchronized(this)
{
????while()
????????代碼邏輯
}
}一切就ok了
窗口1賣了一張票,打印剩余票數(shù)為2(輸出結(jié)果第三行).? 然后CPU資源被窗口2占用,執(zhí)行了賣票操作,但是還沒有執(zhí)行打印輸出操作。然后窗口1獲取CPU資源執(zhí)行操作繼續(xù)賣票,打?。ㄝ敵龅谒男校?。窗口1操作完畢,然后窗口2獲取CPU資源執(zhí)行最后的輸出打印操作(第五行)。
舉報(bào)
認(rèn)識Thread和Runnable的區(qū)別,以及使用jstack生成線程快照
4 回答出票剩余相同?
2 回答票數(shù)不對,為什么呢?
3 回答繼承Thead的也可以實(shí)現(xiàn)票總量的共享啊
3 回答用互斥與同步的知識寫售票系統(tǒng)
1 回答賣票的問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2018-01-28
關(guān)鍵是ticketscount--這個(gè)操作不是原子的,你在public void run(){
????synchronized(this)
{
????while()
{
????????代碼邏輯
}
}
}一切就ok了
2017-12-28
窗口1賣了一張票,打印剩余票數(shù)為2(輸出結(jié)果第三行).? 然后CPU資源被窗口2占用,執(zhí)行了賣票操作,但是還沒有執(zhí)行打印輸出操作。然后窗口1獲取CPU資源執(zhí)行操作繼續(xù)賣票,打?。ㄝ敵龅谒男校?。窗口1操作完畢,然后窗口2獲取CPU資源執(zhí)行最后的輸出打印操作(第五行)。