已采納回答 / 知道比不知道好
java的多線程編程自己覺得是一種模擬多線程。所有的線程函數(shù)都在一個框架下工作,或者說被框架控制。sleep函數(shù)本身就是一個計數(shù)器,你可以想象成里面添加了一個while循環(huán)。在該循環(huán)執(zhí)行時,當前線程休眠,其他線程運行。當循環(huán)結束時,當前線程被喚醒,一旦擁有CPU資源便開始運行。
2018-06-15
已采納回答 / 地鐵時間ee
public class SoldTicketThread implements Runnable { private int ticket = 5; private synchronized void sale() { if (ticket > 0) { System.out.println(Thread.currentThread().getName() + "賣出了一張票,剩余" + (--ticket) + "張票"); try { Thread.sleep(100)...
2016-07-28
已采納回答 / 內涵Naruto
MyThread mt=new MyThread(); Thread td1=new Thread(mt,"售票口1"); Thread td2=new Thread(mt,"售票口2"); Thread td3=new Thread(mt,"售票口3");說的是火車票,但是要通過實現(xiàn)Runnable接口,這樣才能真正意義的使其成為同一資源,如果是繼承Thread類,創(chuàng)建三次,就不是同一資源了,變成了15張票,就不算是同一資源了,是各自獨立的資源,我是這樣理解的
2016-03-25
已采納回答 / 鴻澤
可能是因為并非窗口1首先獲得CPU時間片,而是其他線程。首先是窗口2 ,執(zhí)行到count--之后,sysout時就被阻塞了。注意此時count=4。然后是窗口1 ,執(zhí)行了整個run方法 ,此時count=3。然后是窗口3 ,執(zhí)行了整個run方法 ,此時count=2。此時窗口2恢復,繼count--之后執(zhí)行,輸出count=3。然后是窗口3 ,執(zhí)行了整個run方法 ,此時count=0。當然這種并不一定是這樣,因為現(xiàn)在的多核CPU線程是可以同時執(zhí)行的。
2016-03-12
已采納回答 / 天啟之魂
...........建議你再好好學習一下...這里主線程是指的main函數(shù).......sc只是個對象....只是main線程中的一個代碼而已...這里能看到的就兩個線程 1個main線程 是主線程?? 一個是thread 線程. 設置成了守護線程...
2015-12-02
已采納回答 / 天啟之魂
稍微說下 免得你誤解 不是每個方法都有一個線程 而是 main函數(shù)是程序的入口,你運行java程序的時候就默認開啟的是main線程 然后你有額外開啟了一個thread0的線程 所以有兩個線程羅!
2015-11-22
已采納回答 / passionfoure
執(zhí)行線程sleep方法是依然占著cpu的,操作系統(tǒng)認為該當前線程正在運行,不會讓出系統(tǒng)資源。執(zhí)行wait方法是讓線程到等待池等待,讓出一系列的系統(tǒng)資源,其他線程可以根據調度占用cpu
2015-04-11