首頁  >  文章  >  Java  >  如何優雅地終止Java線程?

如何優雅地終止Java線程?

Linda Hamilton
Linda Hamilton原創
2024-11-11 20:22:03782瀏覽

How to Gracefully Terminate a Java Thread?

如何優雅地終止Java 執行緒

當遇到必須在執行中停止的長時間運行的執行緒時,優雅地這樣做以避免不可預測的後果至關重要.

要實現這一點,常見的方法是在執行緒的run() 方法中引入控制變數。此變數通常是一個布林標誌,充當發出終止請求信號的哨兵。

考慮以下範例:

class MyThread extends Thread {
  volatile boolean finished = false;

  public void stopMe() {
    finished = true;
  }

  @Override
  public void run() {
    while (!finished) {
      // Perform the necessary actions
    }
  }
}

從主執行緒中,您可以透過以下方式優雅地停止執行呼叫stopMe() 方法:

MyThread myThread = new MyThread();
myThread.start();

// Wait some time to simulate work
Thread.sleep(500);

myThread.stopMe();

以前, Java 有一個stop() 方法,但由於它可能會破壞執行緒狀態並解鎖已取得的鎖,因此被宣告為不安全。因此,建議使用控制變數方法來確保乾淨且受控的執行緒終止。

以上是如何優雅地終止Java線程?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn