Javaスレッドを正常に停止する方法は?

ユーザー1034:

スレッドを書いたところ、実行に時間がかかりすぎて完全に完了していないようです。スレッドを優雅に止めたい。何か助け?

ジャック:

これを行うには、次のように、スレッドのを変数で保護し、停止するときに外部から設定するのが適切です。run()booleantrue

class MyThread extends Thread
{
  volatile boolean finished = false;

  public void stopMe()
  {
    finished = true;
  }

  public void run()
  {
    while (!finished)
    {
      //do dirty work
    }
  }
}

むかしむかしstop()方法が存在しましたが、ドキュメントが述べているように

この方法は本質的に安全ではありません。Thread.stopでスレッドを停止すると、そのスレッドがロックしているすべてのモニターのロックが解除されます(チェックされていないThreadDeath例外がスタックを伝播することによる自然な結果として)。これらのモニターによって以前に保護されていたオブジェクトのいずれかが不整合な状態であった場合、損傷したオブジェクトは他のスレッドから見えるようになり、潜在的に任意の動作を引き起こす可能性があります。

だからガードが必要だ。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Javaでスレッドを適切に停止する方法は?

分類Dev

スレッドを停止する方法-Java

分類Dev

PythonでCntrl + Cを使用してスレッドを正常に停止する方法

分類Dev

ProducerConsumerの状況でJavaスレッドを停止する方法は?

分類Dev

Javaプロセスを正常に停止する方法は?

分類Dev

java.util.concurrentを使用してスレッドを一時停止する方法は?

分類Dev

Javaで現在のスレッドを20秒間一時停止する方法は?

分類Dev

100ナノ秒のように、Javaスレッドを一時停止する方法は?

分類Dev

Javaでスレッドを無期限に一時停止し、後で再開する方法は?

分類Dev

ハンドラスレッドを停止する方法は?

分類Dev

Javaスレッドを一時停止/再開する方法

分類Dev

Javaでスレッドを停止する方法

分類Dev

QTGUIを閉じた後にスレッドを停止する方法

分類Dev

デーモンスレッドを停止する方法は?

分類Dev

スレッドを一時停止する方法は?

分類Dev

C#でスレッドを停止する方法は?

分類Dev

とりわけ特定のスレッドを停止する方法は?

分類Dev

Androidでスレッドを停止する方法は?

分類Dev

Javaスレッドを正常に中断する

分類Dev

参照せずにJavaスレッドを停止する

分類Dev

Delphi:接続タイムアウト中にIdHTTPを使用するスレッドを正常に終了する方法は?

分類Dev

Java executorクラスのすべての実行可能なスレッドを停止する方法は?

分類Dev

バックグラウンドスレッドでsikuliを適切に停止する方法は?

分類Dev

Java EEアプリケーションをアンデプロイするときにスレッドを停止する方法は?

分類Dev

スレッドに時間がかかりすぎる場合にスレッドを停止する方法

分類Dev

Chan に処理するデータがなくなったら、スレッドを停止する方法は?

分類Dev

エラーなしで他のスレッドを完全に停止するスレッドを修正する方法

分類Dev

Javaスレッド、1つのスレッドを常に最初に停止または終了させるにはどうすればよいですか?

分類Dev

Javaでスレッドを開始/停止/再開するにはどうすればよいですか?

Related 関連記事

  1. 1

    Javaでスレッドを適切に停止する方法は?

  2. 2

    スレッドを停止する方法-Java

  3. 3

    PythonでCntrl + Cを使用してスレッドを正常に停止する方法

  4. 4

    ProducerConsumerの状況でJavaスレッドを停止する方法は?

  5. 5

    Javaプロセスを正常に停止する方法は?

  6. 6

    java.util.concurrentを使用してスレッドを一時停止する方法は?

  7. 7

    Javaで現在のスレッドを20秒間一時停止する方法は?

  8. 8

    100ナノ秒のように、Javaスレッドを一時停止する方法は?

  9. 9

    Javaでスレッドを無期限に一時停止し、後で再開する方法は?

  10. 10

    ハンドラスレッドを停止する方法は?

  11. 11

    Javaスレッドを一時停止/再開する方法

  12. 12

    Javaでスレッドを停止する方法

  13. 13

    QTGUIを閉じた後にスレッドを停止する方法

  14. 14

    デーモンスレッドを停止する方法は?

  15. 15

    スレッドを一時停止する方法は?

  16. 16

    C#でスレッドを停止する方法は?

  17. 17

    とりわけ特定のスレッドを停止する方法は?

  18. 18

    Androidでスレッドを停止する方法は?

  19. 19

    Javaスレッドを正常に中断する

  20. 20

    参照せずにJavaスレッドを停止する

  21. 21

    Delphi:接続タイムアウト中にIdHTTPを使用するスレッドを正常に終了する方法は?

  22. 22

    Java executorクラスのすべての実行可能なスレッドを停止する方法は?

  23. 23

    バックグラウンドスレッドでsikuliを適切に停止する方法は?

  24. 24

    Java EEアプリケーションをアンデプロイするときにスレッドを停止する方法は?

  25. 25

    スレッドに時間がかかりすぎる場合にスレッドを停止する方法

  26. 26

    Chan に処理するデータがなくなったら、スレッドを停止する方法は?

  27. 27

    エラーなしで他のスレッドを完全に停止するスレッドを修正する方法

  28. 28

    Javaスレッド、1つのスレッドを常に最初に停止または終了させるにはどうすればよいですか?

  29. 29

    Javaでスレッドを開始/停止/再開するにはどうすればよいですか?

ホットタグ

アーカイブ