JavaRush /Java Blog /Random-JA /スレッドを中断します
Pegas
レベル 34
Гродно

スレッドを中断します

Random-JA グループに公開済み
から継承する 2 つのクラスをスケッチしましたRunnable。単純な詰め物 (Thread.sleep および sout) があります。interruptedと を使用してスレッドを中断することを検討していましたisInterrupted。何らかの理由で中断は発生しませんが、プログラムの実行がループに入り、エラーが発生します。 スレッドの中断 - 1
java.lang.InterruptedException: sleep interrupted
	at java.lang.Thread.sleep(Native Method)
	at com.javarush.test.myExample.example.thread.Producer.run(Producer.java:15)
	at java.lang.Thread.run(Thread.java:745)
java.lang.InterruptedException: sleep interrupted
	at java.lang.Thread.sleep(Native Method)
	at com.javarush.test.myExample.example.thread.Consumer.run(Consumer.java:15)
	at java.lang.Thread.run(Thread.java:745)
エラーが発生した後、スレッドは無期限に動作し続けます。Runnableただし、 から継承したクラスから呼び出しを削除するとThread.sleep、プログラムは通常どおり実行されます。何が問題で、なぜエラーが発生し、なぜプログラムが終了しないのでしょうか? ここmain
public class Solution
{
    public static void main(String[] args) throws InterruptedException
    {
        Thread thread1 = new Thread(new Producer());
        Thread thread2 = new Thread(new Consumer());

        thread1.start();
        thread2.start();

        Thread.sleep(1500);

        thread1.interrupt();
        thread2.interrupt();
    }
}
一年生:
public class Producer implements Runnable
{
    @Override
    public void run()
    {
        while (!Thread.interrupted())
        {
            try
            {
                Thread.sleep(100);
            }
            catch (InterruptedException e)
            {
                e.printStackTrace();
            }
            System.out.println("Producer");
        }
    }
}
2 番目のクラス:
public class Consumer implements Runnable
{
    @Override
    public void run()
    {
        while (!Thread.interrupted())
        {
            try
            {
                Thread.sleep(100);
            }
            catch (InterruptedException e)
            {
                e.printStackTrace();
            }
            System.out.println("Consumer");
        }
    }
}
このトピックに関するコメントありがとうございます)
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION