最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java線程之守護線程(Daemon)用法實例

 更新時間:2015年07月20日 12:06:04   作者:鑒客  
這篇文章主要介紹了Java線程之守護線程(Daemon)用法,較為詳細的分析了守護線程的功能與實現技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了Java線程之守護線程(Daemon)用法。分享給大家供大家參考。具體如下:

守護線程(Daemon)
Java有兩種Thread:“守護線程Daemon”與“用戶線程User”。
我們之前看到的例子都是用戶,守護線程是一種“在后臺提供通用性支持”的線程,它并不屬于程序本體。
從字面上我們很容易將守護線程理解成是由虛擬機(virtual machine)在內部創(chuàng)建的,而用戶線程則是自己所創(chuàng)建的。事實并不是這樣,任何線程都可以是“守護線程Daemon”或“用戶線程User”。他們在幾乎每個方面都是相同的,唯一的區(qū)別是判斷虛擬機何時離開:
用戶線程:Java虛擬機在它所有非守護線程已經離開后自動離開。
守護線程:守護線程則是用來服務用戶線程的,如果沒有其他用戶線程在運行,那么就沒有可服務對象,也就沒有理由繼續(xù)下去。
setDaemon(boolean on)方法可以方便的設置線程的Daemon模式,true為Daemon模式,false為User模式。setDaemon(boolean on)方法必須在線程啟動之前調用,當線程正在運行時調用會產生異常。isDaemon方法將測試該線程是否為守護線程。值得一提的是,當你在一個守護線程中產生了其他線程,那么這些新產生的線程不用設置Daemon屬性,都將是守護線程,用戶線程同樣。

例:我們所熟悉的Java垃圾回收線程就是一個典型的守護線程,當我們的程序中不再有任何運行中的Thread,程序就不會再產生垃圾,垃圾回收器也就無事可做,所以當垃圾回收線程是Java虛擬機上僅剩的線程時,Java虛擬機會自動離開。

import java.io.IOException;
/**
 * 守護線程在沒有用戶線程可服務時自動離開
 */
public class TestMain4 extends Thread {
  public TestMain4() {
  }
  /**
   * 線程的run方法,它將和其他線程同時運行
   */
  public void run() {
    for(int i = 1; i <= 100; i++){
      try {
        Thread.sleep(100);
      } catch (InterruptedException ex) {
        ex.printStackTrace();
      }
      System.out.println(i);
    }
  }
  public static void main(String [] args){
    TestMain4 test = new TestMain4();
    test.setDaemon(true);
    test.start();
    System.out.println("isDaemon = " + test.isDaemon());
    try {
      System.in.read();
      // 接受輸入,使程序在此停頓,一旦接收到用戶輸入,main線程結束,守護線程自動結束
    } catch (IOException ex) {
      ex.printStackTrace();
    }
  }
}

希望本文所述對大家的java程序設計有所幫助。

相關文章

  • 使用IDEA畫UML圖的詳細步驟

    使用IDEA畫UML圖的詳細步驟

    UML是面向對象設計的建模工具,獨立于任何具體程序設計語言,是一種為面向對象系統的產品進行說明、可視化和編制文檔的一種標準語言,本文重點給大家介紹使用IDEA畫UML圖的詳細步驟,需要的朋友參考下吧
    2021-06-06
  • Mybatis-plus更新字段為null兩種常用方法及優(yōu)化

    Mybatis-plus更新字段為null兩種常用方法及優(yōu)化

    Mybatis Plus在進行更新操作時,默認情況下是不能將字段更新為null的,如果要更新字段為null,需要進行以下處理,這篇文章主要給大家介紹了關于Mybatis-plus更新字段為null的兩種常用方法及優(yōu)化,需要的朋友可以參考下
    2024-03-03
  • 關于Struts2文件上傳與自定義攔截器

    關于Struts2文件上傳與自定義攔截器

    本篇文章,小編將為大家介紹關于Struts2文件上傳與自定義攔截器,有需要的朋友可以參考一下
    2013-04-04
  • Spring Bean基本管理實例詳解

    Spring Bean基本管理實例詳解

    這篇文章主要介紹了Spring Bean基本管理,以實例形式較為詳細的分析了Spring Bean的相關使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • 圖解Spring容器中實例化bean的四種方式

    圖解Spring容器中實例化bean的四種方式

    這篇文章主要介紹了圖解Spring容器中實例化bean的四種方式,傳統應用程序可以通過new和反射方式進行實例化Bean,而Spring IOC容器則需要根據 Bean 定義里的配置元數據,使用反射機制來創(chuàng)建Bean,需要的朋友可以參考下
    2023-11-11
  • Java發(fā)展史之Java由來

    Java發(fā)展史之Java由來

    本文主要給大家簡單講解了一下java的發(fā)展史,詳細說明了java的由來以及如何一步步發(fā)展起來的,想了解的小伙伴可以來參考下
    2016-10-10
  • java 中DH的方式實現非對稱加密的實例

    java 中DH的方式實現非對稱加密的實例

    這篇文章主要介紹了java 中DH的方式實現非對稱加密的實例的相關資料,這里提供實現簡單實例,需要的朋友可以參考下
    2017-08-08
  • spring調度注解@Scheduled方式(含分布式)

    spring調度注解@Scheduled方式(含分布式)

    文章介紹了Java中任務調度的幾種常見方法,包括JDK原生的Timer、ScheduledThreadPoolExecutor和Spring的@Scheduled注解,文章還討論了如何在分布式環(huán)境中實現任務調度,并介紹了一些開源的分布式任務調度解決方案,如Quartz和XXL-JOB
    2024-11-11
  • 關于spring屬性占位符用法

    關于spring屬性占位符用法

    這篇文章主要介紹了關于spring屬性占位符用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • SpringBoot中使用Swagger的超簡單方法

    SpringBoot中使用Swagger的超簡單方法

    大家一致認為springBoot使用swagger太麻煩了,每次都需要編寫config,今天小編告訴大家一種超簡單配置方法,教大家如何整合swagger,感興趣的朋友跟隨小編一起看看吧
    2021-07-07

最新評論

开远市| 三门县| 竹溪县| 桐梓县| 德兴市| 大厂| 长海县| 舞钢市| 山西省| 惠来县| 凌海市| 西城区| 宜君县| 新乐市| 辛集市| 咸阳市| 新龙县| 尤溪县| 湘阴县| 克山县| 庄河市| 白水县| 尖扎县| 崇阳县| 纳雍县| 亳州市| 将乐县| 溆浦县| 论坛| 章丘市| 泰宁县| 拜城县| 白山市| 宜君县| 年辖:市辖区| 无锡市| 青阳县| 安顺市| 淮北市| 石渠县| 十堰市|