JAVA——どうやってスレッドを止めますか?(interrupt)


stopの方法はもう時代遅れだ.では、スレッドを停止するにはどうすればいいですか?一つだけrunメソッドが終了します.マルチスレッド実行をオンにします.実行コードは通常、ループ構造です.ループを制御すればrunメソッド,すなわちスレッドを終了させることができる.
特殊な場合:スレッドがフリーズされている場合.タグは読み込まれません.スレッドは終了しません.フリーズしたスレッドを実行状態に戻す方法が指定されていない場合は、フリーズをクリアする必要があります.スレッドを実行状態に強制的に復元します.これにより、タグを操作してスレッドを終了することができます.Threadクラスはこの方法interrupt()を提供した.参照例:
class StopThread implements Runnable {
    private boolean flag = true;
    public synchronized void run()
    {
        while(flag)
        {
            try
            {
                wait();
            }
            catch(InterruptedException e)
            {
                System.out.println(Thread.currentThread().getName()+"....Exception");
                flag = false;
            }
            System.out.println(Thread.currentThread().getName()+"....run");
        }
    }
    public void changeFlag()
    {
        flag = false;
    }
}
class StopThreadDemo
{
    public static void main(String[] args)
    {
        StopThread st = new StopThread();
        Thread t1 = new Thread(st);
        Thread t2 = new Thread(st);
        t1.start();
        t2.start();

        int num = 0;
        while(true)
        {
            if(num++==10)
            {
                //st.changeFlag();
                t1.interrupt();
                t2.interrupt();
                break;
            }
            System.out.println(Thread.currentThread().getName()+"....main"+num);
        }
    }
}