ホームページ  >  記事  >  Java  >  Java の例 - スレッドを終了する

Java の例 - スレッドを終了する

黄舟
黄舟オリジナル
2016-12-27 13:38:151261ブラウズ

Java は元々、スレッドを終了するために Thread に stop() メソッドを提供していましたが、このメソッドは安全ではないため、通常は使用することはお勧めできません。

この記事では、interrupt メソッドを使用してスレッドを中断する方法を紹介します。

割り込みメソッドを使用してスレッドを終了する場合は、次の 2 つの状況に分けられます。

(1) スレッドがブロック状態にある場合 (スリープ メソッドの使用など)。

(2) while(!isInterrupted()){…} を使用して、スレッドが中断されているかどうかを判断します。

割り込みメソッドを使用する最初のケースでは、スリープ メソッドは InterruptedException 例外をスローしますが、2 番目のケースではスレッドが直接終了します。次のコードは、最初のケースでの割り込みメソッドの使用を示しています

/*
 author by w3cschool.cc
 ThreadInterrupt.java
 */public class ThreadInterrupt extends Thread { 
    public void run() 
    { 
        try 
        { 
            sleep(50000);  // 延迟50秒 
        } 
        catch (InterruptedException e) 
        { 
            System.out.println(e.getMessage()); 
        } 
    } 
    public static void main(String[] args) throws Exception 
    { 
        Thread thread = new ThreadInterrupt(); 
        thread.start(); 
        System.out.println("在50秒之内按任意键中断线程!"); 
        System.in.read(); 
        thread.interrupt(); 
        thread.join(); 
        System.out.println("线程已经退出!"); 
    } }

上記のコードの出力結果は次のとおりです:

在50秒之内按任意键中断线程!
sleep interrupted
线程已经退出!

上記は Java の例の内容です - スレッドの終了 さらに関連した内容については、お支払いください。 PHP 中国語 Web サイト (www.php .cn) に注意してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。