Java中的stop和start方法是用于控制多線程的方法。在多線程程序中,start方法啟動一個線程,而stop方法用于停止一個正在運行的線程。
public void start()
start方法被用于啟動一個新線程,當調用start方法后,JVM會為該線程創建一個新的調用棧,并在新線程中調用run方法。
public void stop()
stop方法用于停止一個正在運行的線程。但是,該方法是不安全的,因為它會強行終止線程,而不管線程當前的執行狀態。所以不建議使用該方法。Java API提供了一種更為安全的方式——通過設置標志位來通知線程終止。
在Java多線程中,建議使用更為安全的方式,即使用標志位來通知線程終止。以下代碼演示了如何使用標志位通知線程終止:
class MyThread extends Thread { private volatile boolean stop = false; public void run() { while (!stop) { // 線程執行的任務 } } public void stopThread() { stop = true; } } // 在需要停止線程的地方調用stopThread方法
以上代碼中,使用一個標志位stop來控制線程是否終止。使用volatile關鍵字修飾stop變量,保證線程間的可見性。當需要停止線程時,調用stopThread方法,改變stop變量的值為true即可。