欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中終止線程的三種方法

 更新時間:2016年12月13日 10:27:17   作者:jiantixing9583  
這篇文章主要為大家詳細介紹了Java中終止線程的三種方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

Thread.stop, Thread.suspend, Thread.resume 和Runtime.runFinalizersOnExit 這些終止線程運行的方法已經被廢棄,使用它們是極端不安全的!

1.線程正常執(zhí)行完畢,正常結束

也就是讓run方法執(zhí)行完畢,該線程就會正常結束。

但有時候線程是永遠無法結束的,比如while(true)。

2.監(jiān)視某些條件,結束線程的不間斷運行

需要while()循環(huán)在某以特定條件下退出,最直接的辦法就是設一個boolean標志,并通過設置這個標志來控制循環(huán)是否退出。

public class ThreadFlag extends Thread {
  public volatile boolean exit = false;

  public void run() {
    while (!exit) {
      System.out.println("running!");
    }
  }

  public static void main(String[] args) throws Exception {
    ThreadFlag thread = new ThreadFlag();
    thread.start();
    sleep(1147); // 主線程延遲5秒
    thread.exit = true; // 終止線程thread 
    thread.join();
    System.out.println("線程退出!");
  }
}

3.使用interrupt方法終止線程

如果線程是阻塞的,則不能使用方法2來終止線程。

public class ThreadInterrupt extends Thread {
  public void run() {
    try {
      sleep(50000); // 延遲50秒
    } catch (InterruptedException e) {
      System.out.println(e.getMessage());
    }
  }

  public static void main(String[] args) throws Exception {
    Thread thread = new ThreadInterrupt();
    thread.start();
    System.out.println("在50秒之內按任意鍵中斷線程!");
    System.in.read();
    thread.interrupt();
    thread.join();
    System.out.println("線程已經退出!");
  }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • SpringBoot2.0 ZipKin示例代碼

    SpringBoot2.0 ZipKin示例代碼

    這篇文章主要介紹了SpringBoot2.0 ZipKin示例代碼,詳細的介紹了什么是ZipKin以及SpringBoot2.0 ZipKin示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • 使用注解@Recover優(yōu)化丑陋的循環(huán)詳解

    使用注解@Recover優(yōu)化丑陋的循環(huán)詳解

    我們知道在實現(xiàn)一個功能的時候是可以使用不同的代碼來實現(xiàn)的,那么相應的不同實現(xiàn)方法的性能肯定也是有差別的,下面這篇文章主要給大家介紹了關于使用注解@Recover優(yōu)化丑陋的循環(huán)的相關資料,需要的朋友可以參考下
    2022-04-04
  • Springboot2.3.x整合Canal的示例代碼

    Springboot2.3.x整合Canal的示例代碼

    canal是阿里開源mysql?binlog?數(shù)據組件,canal-server?才是canal的核心我們前邊所講的canal的功能,實際上講述的就是canal-server的功能,本文給大家介紹Springboot2.3.x整合Canal的示例代碼,需要的朋友可以參考下
    2022-02-02
  • Java調用SQL腳本執(zhí)行常用的方法示例

    Java調用SQL腳本執(zhí)行常用的方法示例

    這篇文章主要給大家介紹了關于Java調用SQL腳本執(zhí)行常用的方法的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2018-04-04
  • SpringBoot 2.x 整合Lombok的方法示例

    SpringBoot 2.x 整合Lombok的方法示例

    Spring Boot是非常高效的開發(fā)框架,lombok是一套代碼模板解決方案,將極大提升開發(fā)的效率,這篇文章主要介紹了SpringBoot 2.x 整合Lombok的方法示例,感興趣的小伙伴們可以參考一下
    2018-06-06
  • IDEA中application.properties的圖標顯示不正常的問題及解決方法

    IDEA中application.properties的圖標顯示不正常的問題及解決方法

    這篇文章主要介紹了IDEA中application.properties的圖標顯示不正常的問題及解決方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • Java中MapStruct映射處理器報錯的問題解決

    Java中MapStruct映射處理器報錯的問題解決

    MapStruct是一個強大的Java映射框架,它能夠在編譯時生成映射代碼,,本文主要介紹了Java中MapStruct映射處理器報錯的問題解決,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • SpringCloud Eureka搭建的方法步驟

    SpringCloud Eureka搭建的方法步驟

    這篇文章主要介紹了SpringCloud Eureka搭建的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • Redis六大數(shù)據類型使用方法詳解

    Redis六大數(shù)據類型使用方法詳解

    這篇文章主要介紹了Redis六大數(shù)據類型使用方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-12-12
  • maven搭建java ee項目圖文教程

    maven搭建java ee項目圖文教程

    這篇文章主要為大家詳細介紹了maven搭建java ee項目圖文教程,感興趣的小伙伴們可以參考一下
    2016-04-04

最新評論