java基礎---->java多線程的使用(九)

來源:互聯網
上載者:User

標籤:lan   知識   ace   star   pre   this   static   tar   log   

  這裡我們通過執行個體來學習一下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 trueisInterrupted is falseisInterrupted is truejava.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 trueisInterrupted is falsebreak

 

友情連結

 

java基礎---->java多線程的使用(九)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.