zoukankan      html  css  js  c++  java
  • java基础---->多线程之interrupt(九)

      这里我们通过实例来学习一下java多线程中关于interrupt方法的一些知识。执者失之。我想当一个诗人的时候,我就失去了诗,我想当一个人的时候,我就失去了我自己。在你什么也不想要的时候,一切如期而来。

    java多线程中的interrupt实例

    一、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

    友情链接

  • 相关阅读:
    android SD卡文件的读写
    Android Junit 单元测试步骤
    android xml解析之SAX
    android赚钱 植入有米广告方法
    android广告平台介绍
    读、写其他应用的SharedPreferences
    SQL数据基本操作
    res/raw下的资源文件读写
    容易吗?
    写给实习生的邮件
  • 原文地址:https://www.cnblogs.com/huhx/p/baseusejavathreadinterrupt.html
Copyright © 2011-2022 走看看