最新回答 / Coda
有些時候是等效的,有些時候不可以的。使用Thread.currentThread().getName()和使用this.getName()都可以得到線程的名稱,但是使用this調用getName()方法只能在本類中,而不能在其他類中,更不能在Runnable接口中,所以只能使用Thread.currentThread().getName()獲取線程的名稱,否則會出現編譯時異常。這種題一般多測試幾種不同的情況可以得出的。
2015-03-13
講師回答 / Arthur
你得結果也是正常的。簡單說只有Running的線程擁有CPU,CPU時間片用完就釋放。這就是為什么還沒調用sleep(),另一個線程就執行了。要把整個問題說清楚需要了解Java線程的狀態及遷移的知識。你可以參考慕課上的《細說Java多線程》
2015-02-21
講師回答 / Arthur
用了volatile,你在這里寫入keepRunning的值,run里面的while才能結束。不用volatile,run里面的while很有可能停不下來。具體你可以去Wiki看看。
2015-02-21