執行start()方法的順序不表明線程啓動的順序安全
構造函數Thread(Runnable target)不光能夠傳入Runnable接口的對象,還能夠傳入一個Thread類的對象多線程
,這樣作徹底能夠將一個Threa對象中的run()方法交由其餘線程進行調用函數
在某些JVM中,i--的操做要分紅以下3步:工具
currentThread():返回代碼段正在被那個線程調用的信息 測試
currentThread()和 this的差別this
Thread.currentThread().getName()在兩種實現線程的方式中均可以用 this.getName()只能在繼承方式中使用。由於在Thread子類中用this,this表明的是線程對象。 若是你在Runnable實現類中用this.getName(),那麼編譯錯誤,由於在Runnable中,不存在getName方法 |
使用Thread.currentThread().getName()和使用this.getName(),均可以獲得線程的名稱,可是使用this調用getName()方法只能在本類中,而不能在其餘類中,更不能在Runnable接口中,因此只能使用Thread.currentThread().getName()獲取線程的名稱,不然會出現編譯時異常。spa
isAlive():判斷當前線程是否處於活動狀態(線程已經啓動且還沒有終止:正在運行或準備運行狀態)線程
sellp():在指定的好秒內讓當前「正在執行的線程(this.currentThread())」休眠(暫停執行)對象
Thread.interrupt():不會終止一個正在運行的現場,還須要加入一個判斷才能夠完成線程的中止繼承
僅僅實在當前線程打了一箇中止的標誌
Thread.stop():不安全,棄用的方法
中止線程的方法:
this.interrupted()靜態方法:測試當前線程(運行此方法線程,就是此段代碼運行的線程,不是指調用對象的線程)是否已經中斷,線程中斷狀態由該方法清除(置爲false)
this.isInterrupter():測試線程Thread對象是否已經中斷