javaが変数を共有することにより、run停止スレッドを終了する方法の例

1604 ワード

stop()方法はすでに廃棄されました。安全ではないからです。API文書では、具体的な詳細な説明が与えられている。interrupted()方法でスレッドを中断します。おすすめしません。変数を共有することにより、run()メソッドを終了し、スレッドを停止します。実例のように
 
  
public class ThreadInterrupt {
    public static void main(String []args){
        Runner run = new Runner();
        run.start();
        try {
            Thread.sleep(10000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block

        }

        //run.stop();// , ,
        //run.interrupt(); // , ,
        run.flag=false;//
    }
}

class  Runner extends Thread{
    boolean flag = true;
    public void run(){
    /*    while(true){
            System.out.println(new Date()+"----");
            try {
                sleep(1000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                System.out.println("Interrupted");
                return;
            }
        }
        */

        while(flag){
            System.out.println(new Date()+"----");
            try {
                sleep(1000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                System.out.println("Interrupted");
                return;
            }
        }
    }
}