Java基础多线程之线程中止示例:

class StopThreadDemo
{
    public static void main(String[] args)
    {
        StopThread stopThread = new StopThread();
    
        Thread t1 = new Thread(stopThread,"t1");
        Thread t2 = new Thread(stopThread,"t2");
        
        t1.start();
        t2.start();
        
        int num=0;
        while(true)
        {
            if(num++ ==60)
            {            
                //this.changeFlag();
                t1.interrupt();
                t2.interrupt();
                break;
            }
            
            System.out.println(Thread.currentThread().getName()+ " runing.... "+ num);
        }
        
        System.out.println("end");
    }
}

class StopThread implements Runnable
{
    private boolean flag = true;
    public synchronized void run()
    {        
        while(this.flag)
        {
            try
            {
                wait();
            }
            catch(InterruptedException ex)
            {
                System.out.println(Thread.currentThread().getName() + ": Exception");
                this.changeFlag();
            }
            System.out.println(Thread.currentThread().getName() + ": runing...");
        }
    }
    
    public void changeFlag()
    {
        this.flag = false;
    }
}
原文地址:https://www.cnblogs.com/cxmsky/p/2860991.html