Java 7同時プログラミング実戦(一)スレッドの中断

3081 ワード

スレッドの割り込みを制御する方法は、一般的にブール値を定義し、while(ブール値)が実行するが、スレッドを停止するには、ブール値をfalseに設定する.
2つ目はInterruptです
 
この例では、1から10に印刷されたスレッドをシミュレートし、5になるとスレッドを中断し、主にスレッドでスナップします.
InterruptedException  

 
 
public class Test implements Runnable {

    @Override
    public void run() {
        // TODO Auto-generated method stubfor(int i=0;i<10;i++){
            System.out.println(" "+i);
            try {
                TimeUnit.SECONDS.sleep(1);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                System.out.println(" interrupterd");
            }
        }
    }
}

 
Mainメソッドでの割り込み
public class Main {
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Test tt = new Test();
        Thread thread = new Thread(tt);
        thread.start();
        try {
            TimeUnit.SECONDS.sleep(5);
            
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        thread.interrupt();
    }
}

印刷結果
 0
 1
 2
 3
 4
 interrupterd
 5
 6
 7
 8
 9