true 代码 [] this system interrupt xtend inux
这里我们通过实例来学习一下 java 多线程中关于 interrupt 方法的一些知识。
- public class InterruptTest {
- public static void main(String[] args) {
- MyThread1 myThread1 = new MyThread1();
- myThread1.start();
- myThread1.interrupt();
- System.out.println("isInterrupted is " + myThread1.isInterrupted()); // true
- System.out.println("isInterrupted is " + myThread1.interrupted()); // false
- }
- static class MyThread1 extends Thread {@Override public void run() {
- try { // The interrupted status of the thread is cleared by this method
- System.out.println("in isInterrupted is " + Thread.interrupted()); // true
- System.out.println("isInterrupted is " + Thread.currentThread().isInterrupted()); // false
- TimeUnit.SECONDS.sleep(5);
- System.out.println("my thread 1");
- } catch(InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
- }
如果注释掉代码:System.out.println("in isInterrupted is" + Thread.interrupted()); 则打印的结果如下:
- isInterrupted is true isInterrupted is false isInterrupted is true java.lang.InterruptedException: sleep interrupted at java.lang.Thread.sleep(Native Method) at java.lang.Thread.sleep(Thread.java: 340) at java.util.concurrent.TimeUnit.sleep(TimeUnit.java: 360) at com.linux.huhx.thread2.InterruptTest$MyThread1.run(InterruptTest.java: 21)
- public class InterruptTest {
- public static void main(String[] args) throws Exception {
- MyThread1 myThread1 = new MyThread1();
- myThread1.start();
- myThread1.interrupt();
- System.out.println("isInterrupted is " + myThread1.isInterrupted()); // true
- System.out.println("isInterrupted is " + myThread1.interrupted()); // false
- }
- static class MyThread1 extends Thread {@Override public void run() {
- while (true) {
- if (Thread.interrupted()) {
- System.out.println("break");
- break;
- }
- System.out.println("count " + Thread.currentThread().isInterrupted()); // count false
- }
- }
- }
- }
一次的运行结果如下:
- isInterrupted is true isInterrupted is false
- break
java 基础 ---->java 多线程的使用(九)
来源: http://www.bubuko.com/infodetail-2230667.html