已采納回答 / 小娜子
調用sleep()阻塞當前線程,當其他線程調用interrupt()的時候,sleep()會發生InterriptedException()中斷異常,并清除中斷狀態。System.currenttime - time)<1000是if的判斷條件,當這個值小于1000時進入if()代碼塊執行程序。
2016-07-13
已采納回答 / _布袋饃_
join()方法是終止其他線程,優先完成本線程。這個代碼只有兩個線程在競爭CPU。一個進行完不就只剩下一個線程了嘛 ?沒必要在寫多余的代碼了 如果線程多了 就可以多寫幾個join()方法了。
2016-07-10
已采納回答 / krisleo
Thread 是一個類只能繼承后,復寫run方法后,生成線程類對象調用start方法就可以實現線程的運行。Runnable是一個接口,里面只有一個run方法,只有實現(implement)這個接口后,必須復寫run方法才能運行,步驟和Thread是一樣的,一般用Runnable比較多
2016-07-07
已采納回答 / 羅曼蒂軻
cpu的執行時分時的,比如你電腦現在開啟了三個程序ABC,。CPU在這三個程序之間不停的切換執行,由于速度很快,你覺得它們是一起執行的,執行ABC不一定是按順序的,也可能是A>C>A>B>B>B>C>A>B>A,所以會出現隨機性的交替執行
2016-07-04
已采納回答 / 玄鑒
我感覺是一樣的,都是占著鍋里的,渴望對方碗里的,還死不想讓,結果導致被占著的廁所永遠被這兩個人占領,其他人都無法正常使用。除非關閉停止運行程序,大家都去睡覺,不然這兩個線程將永遠處于死鎖狀態。而且第二天還是有可能再次出現這種情況的,不過概率很小而已。
2016-06-21
已采納回答 / 風云7857
Thread.sleep()使當前線程在指定的時間處于“非運行”(Not Runnable)狀態。線程一直持有對象的監視器。比如一個線程當前在一個同步塊或同步方法中,其它線程不能進入該塊或方法中。如果另一線程調用了interrupt()方法,它將喚醒那個“睡眠的”線程。注意:sleep()是一個靜態方法。這意味著只對當前線程有效,一個常見的錯誤是調用t.sleep(),(這里的t是一個不同于當前線程的線程)。即便是執行t.sleep(),也是當前線程進入睡眠,而不是t線程。t.suspend()是過時的方...
2016-06-21
已采納回答 / 風云7857
如下:wait():使一個線程處于等待狀態,并且釋放所持有的對象的lock;sleep():使一個正在運行的線程處于睡眠狀態,是一個靜態方法,調用此方法要捕捉InterruptedException異常;notify():喚醒一個處于等待狀態的線程,注意的是在調用此方法的時候,并不能確切的喚醒某一個等待的線程,而是由JVM確定喚醒哪個線程,而且不是按優先級;notityAll():喚醒所有處于等待狀態的線程,注意并不是給所有喚醒線程一個對象的鎖,而是讓他們競爭。
2016-06-20