Java 中的執行緒控制:啟動、停止和重新啟動
啟動執行緒就像建立Thread 類別的實例一樣簡單,呼叫start ()方法。然後,執行緒將執行其 run() 方法中的程式碼。
但是,停止執行緒就沒那麼簡單。一旦線程啟動,就沒有直接的方法可以停止它。相反,您可以使用技術來通知線程它應該停止執行。
一種常見的方法是使用布林標誌來指示執行緒是否應該繼續運作。在執行緒的 run() 方法中,您可以定期檢查該標誌,並在其設定為 false 時終止執行。
<code class="java">// Task.java private boolean isRunning = true; @Override public void run() { while (isRunning) { // Perform tasks here } } public void stop() { isRunning = false; }</code>
重新啟動執行緒
重新啟動執行緒意味著建立 Thread 類別的新實例並啟動它。這是因為線程一旦停止就無法重複使用。但是,需要注意的是,原始執行緒維護的任何資料或狀態都不會轉移到新執行緒。
選項 1:建立新執行緒
<code class="java">Thread taskThread = new Thread(new Task()); taskThread.start(); // Later, to restart the thread... taskThread = new Thread(new Task()); taskThread.start();</code>
選項 2:通知並重新啟動
<code class="java">// Task.java private Object lock = new Object(); @Override public void run() { while (true) { synchronized (lock) { if (shouldStop) { try { lock.wait(); } catch (InterruptedException e) {} } } // Perform tasks here } } public void stop() { synchronized (lock) { shouldStop = true; lock.notify(); } } public void restart() { synchronized (lock) { shouldStop = false; lock.notify(); } }</code>
以上是如何在 Java 中控制執行緒:啟動、停止和重新啟動?的詳細內容。更多資訊請關注PHP中文網其他相關文章!