Thread.currentThread()
可以用來獲取當前正在執行的線程。而且我認爲睡眠和收益方法都是靜態的,因爲它們不能在其他線程上執行睡眠或收益。所以通過將它們設置爲靜態,它會睡眠或只產生當前正在執行的線程。如果有多個處理器,Thread.currentThread()如何工作?
這似乎是在單處理器系統,如果我打電話Thread.currentThread()
或睡眠,那麼只有當前正在運行的線程,它會返回或它會睡覺。但在多核系統中,多個線程可以同時運行,因此Thread.currentThread()
或Thread.sleep()
如何工作......?
這完全是操作系統特定的;這是JVM在這裏使角色準確工作的角色。 – fge
只是爲了澄清已經給出的答案:_current_並不意味着_當前正在執行_。它意味着你正在調用靜態方法的線程。 –
這個名字是古代遺留下來的,當時只有一個CPU。那時,調用方法的線程確實是當前線程。 –