Java線程四
關於如何停止線程
在以前的JDK版本中Thread類有Stop方法,但該方法已過時
那現在的版本如何停止線程?
只有一種,就是讓run方法結束
開啓多線程運行,運行代碼通常是循環結構,只要控制住循環,就可以讓run方法結束,也就是線程結束
當線程處於wait() 等待狀態,就有可能讀不到標記,線程一直在等待被喚醒,此時線程將不會結束。
當沒有指定的方式讓等待的線程恢復到運行狀態時,這時需要對等待的狀態進行清除
Thread線程類提供了一個方法 interrupt() 方法是強制讓線程恢復到運行狀態中來,這樣就可以讓線程去判斷標記,
由從纔有可能停止run方法,也就是停止線程。
關於停止線程還有另一種方式,那就是守護線程
比如:目前運行的有三個線程,Main 主線程, Thread1 線程1, Thread2 線程2
如果Main主線程執行完成了,這時 Thread1 和 Thread2 線程也就沒有存在的意義時,要都結束
爲了達到這種效果,則可以將 Thread1 和 Thread2 爲守護線程
換句話說,Thread1 和 Thread2 都依賴於 主線程,如果主線程結束,那麼程序結束
使用守護線程的方式是
在Thread1 和 Thread2 線程在啓動時,調用該線程的setDaemon()方法,傳入true 參數,這個就可以將子線程變成守護線程。