亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

java 多線程 守護(hù)線程

tianren124 / 3315人閱讀

摘要:的作用是為其他線程的運(yùn)行提供便利服務(wù),守護(hù)線程最典型的應(yīng)用就是垃圾回收器我是子線程我是主線程主線程執(zhí)行完畢注意必須在之前設(shè)置,否則會(huì)跑出一個(gè)異常。你不能把正在運(yùn)行的常規(guī)線程設(shè)置為守護(hù)線程。在線程中產(chǎn)生的新線程也是的。

在Java中有兩類線程:User Thread(用戶線程)、Daemon Thread(守護(hù)線程)

用戶線程是指用戶自定義創(chuàng)建的線程,主線程停止,用戶線程不會(huì)停止

只要當(dāng)前JVM實(shí)例中尚存在任何一個(gè)非守護(hù)線程沒有結(jié)束,守護(hù)線程就全部工作;只有當(dāng)最后一個(gè)非守護(hù)線程結(jié)束時(shí),守護(hù)線程隨著JVM一同結(jié)束工作。Daemon的作用是為其他線程的運(yùn)行提供便利服務(wù),守護(hù)線程最典型的應(yīng)用就是 GC (垃圾回收器)

public class DaemonThread {

    public static void main(String[] args) {
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                while (true) {
                    try {
                        Thread.sleep(100);
                    } catch (Exception e) {
                        
                    }
                    System.out.println("我是子線程...");
                }
            }
        });
        thread.setDaemon(true);
        thread.start();
        for (int i = 0; i < 10; i++) {
            try {
                Thread.sleep(100);
            } catch (Exception e) {

            }
            System.out.println("我是主線程");
        }
        System.out.println("主線程執(zhí)行完畢!");
    }

}

注意
(1) thread.setDaemon(true)必須在thread.start()之前設(shè)置,否則會(huì)跑出一個(gè)IllegalThreadStateException異常。你不能把正在運(yùn)行的常規(guī)線程設(shè)置為守護(hù)線程。
(2) 在Daemon線程中產(chǎn)生的新線程也是Daemon的。
(3) 不要認(rèn)為所有的應(yīng)用都可以分配給Daemon來進(jìn)行服務(wù),比如讀寫操作或者計(jì)算邏輯

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/74267.html

相關(guān)文章

  • 慕課網(wǎng)_《細(xì)說線程之Thread VS Runnable》學(xué)習(xí)總結(jié)

    摘要:時(shí)間年月日星期六說明本文部分內(nèi)容均來自慕課網(wǎng)。慕課網(wǎng)教學(xué)源碼無學(xué)習(xí)源碼第一章課前準(zhǔn)備前言課程說明比較和這兩種線程創(chuàng)建的方式,需要知道和的基本創(chuàng)建方式。一旦主線程獲取到了用戶的輸入,這時(shí)候,阻塞就會(huì)解除掉,主線程繼續(xù)運(yùn)行,直到結(jié)束。 時(shí)間:2017年07月08日星期六說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:無學(xué)習(xí)源碼:https://g...

    netScorpion 評(píng)論0 收藏0
  • Java線程學(xué)習(xí)(一)Java線程入門

    摘要:最近聽很多面試的小伙伴說,網(wǎng)上往往是一篇一篇的多線程的文章,除了書籍沒有什么學(xué)習(xí)多線程的一系列文章。將此線程標(biāo)記為線程或用戶線程。 最近聽很多面試的小伙伴說,網(wǎng)上往往是一篇一篇的Java多線程的文章,除了書籍沒有什么學(xué)習(xí)多線程的一系列文章。但是僅僅憑借一兩篇文章很難對(duì)多線程有系統(tǒng)的學(xué)習(xí),而且面試的時(shí)候多線程這方面的知識(shí)往往也是考察的重點(diǎn),所以考慮之下決定寫一系列關(guān)于Java多線程的文章...

    Donne 評(píng)論0 收藏0
  • Java基礎(chǔ)學(xué)習(xí)——線程之停止線程守護(hù)線程

    摘要:方法將凍結(jié)狀態(tài)的線程強(qiáng)制運(yùn)行,并拋出異常。注意只有在運(yùn)行狀態(tài)的線程才能讀到標(biāo)識(shí)位,最終停止線程。當(dāng)正在運(yùn)行的線程都是守護(hù)線程時(shí),虛擬機(jī)退出。 stop()等方法過時(shí)以后,停止線程的唯一方法就是結(jié)束run()方法:開啟多線程運(yùn)行通常都是循環(huán)結(jié)構(gòu),只要使用標(biāo)識(shí)位控制住循環(huán),就可以讓run()方法結(jié)束,即線程結(jié)束。 特殊情況:當(dāng)線程處于了凍結(jié)狀態(tài)就不會(huì)讀取到標(biāo)記,那么線程就不會(huì)停止。 int...

    _Suqin 評(píng)論0 收藏0
  • Thread源碼剖析

    摘要:現(xiàn)在已經(jīng)沒有強(qiáng)制線程終止的方法了由于方法可以讓一個(gè)線程終止掉另一個(gè)線程被終止的線程會(huì)立即釋放鎖,這可能會(huì)讓對(duì)象處于不一致的狀態(tài)。 前言 昨天已經(jīng)寫了: 多線程三分鐘就可以入個(gè)門了! 如果沒看的同學(xué)建議先去閱讀一遍哦~ 在寫文章之前通讀了一遍《Java 核心技術(shù) 卷一》的并發(fā)章節(jié)和《Java并發(fā)編程實(shí)戰(zhàn)》前面的部分,回顧了一下以前寫過的筆記。從今天開始進(jìn)入多線程的知識(shí)點(diǎn)咯~ 我其實(shí)也是相...

    HtmlCssJs 評(píng)論0 收藏0
  • @Java | Thread & synchronized - [ 線程 理論知識(shí)]

    摘要:死亡線程方法執(zhí)行結(jié)束,或者因異常退出了方法,則該線程結(jié)束生命周期。死亡的線程不可再次復(fù)生。直到當(dāng)前的線程放棄此對(duì)象上的鎖定,才能繼續(xù)執(zhí)行被喚醒的線程。枚舉程序中的線程。強(qiáng)迫一個(gè)線程等待。通知一個(gè)線程繼續(xù)運(yùn)行。 一. 線程狀態(tài)轉(zhuǎn)換圖 showImg(https://segmentfault.com/img/bV38ef?w=968&h=680); 線程間的狀態(tài)轉(zhuǎn)換說明: 新建(new)...

    harryhappy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<