摘要:的作用是為其他線程的運行提供便利服務(wù),守護線程最典型的應(yīng)用就是垃圾回收器我是子線程我是主線程主線程執(zhí)行完畢注意必須在之前設(shè)置,否則會跑出一個異常。你不能把正在運行的常規(guī)線程設(shè)置為守護線程。在線程中產(chǎn)生的新線程也是的。
在Java中有兩類線程:User Thread(用戶線程)、Daemon Thread(守護線程)
用戶線程是指用戶自定義創(chuàng)建的線程,主線程停止,用戶線程不會停止
只要當前JVM實例中尚存在任何一個非守護線程沒有結(jié)束,守護線程就全部工作;只有當最后一個非守護線程結(jié)束時,守護線程隨著JVM一同結(jié)束工作。Daemon的作用是為其他線程的運行提供便利服務(wù),守護線程最典型的應(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è)置,否則會跑出一個IllegalThreadStateException異常。你不能把正在運行的常規(guī)線程設(shè)置為守護線程。
(2) 在Daemon線程中產(chǎn)生的新線程也是Daemon的。
(3) 不要認為所有的應(yīng)用都可以分配給Daemon來進行服務(wù),比如讀寫操作或者計算邏輯
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/74267.html
摘要:時間年月日星期六說明本文部分內(nèi)容均來自慕課網(wǎng)。慕課網(wǎng)教學源碼無學習源碼第一章課前準備前言課程說明比較和這兩種線程創(chuàng)建的方式,需要知道和的基本創(chuàng)建方式。一旦主線程獲取到了用戶的輸入,這時候,阻塞就會解除掉,主線程繼續(xù)運行,直到結(jié)束。 時間:2017年07月08日星期六說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學源碼:無學習源碼:https://g...
摘要:最近聽很多面試的小伙伴說,網(wǎng)上往往是一篇一篇的多線程的文章,除了書籍沒有什么學習多線程的一系列文章。將此線程標記為線程或用戶線程。 最近聽很多面試的小伙伴說,網(wǎng)上往往是一篇一篇的Java多線程的文章,除了書籍沒有什么學習多線程的一系列文章。但是僅僅憑借一兩篇文章很難對多線程有系統(tǒng)的學習,而且面試的時候多線程這方面的知識往往也是考察的重點,所以考慮之下決定寫一系列關(guān)于Java多線程的文章...
摘要:方法將凍結(jié)狀態(tài)的線程強制運行,并拋出異常。注意只有在運行狀態(tài)的線程才能讀到標識位,最終停止線程。當正在運行的線程都是守護線程時,虛擬機退出。 stop()等方法過時以后,停止線程的唯一方法就是結(jié)束run()方法:開啟多線程運行通常都是循環(huán)結(jié)構(gòu),只要使用標識位控制住循環(huán),就可以讓run()方法結(jié)束,即線程結(jié)束。 特殊情況:當線程處于了凍結(jié)狀態(tài)就不會讀取到標記,那么線程就不會停止。 int...
摘要:現(xiàn)在已經(jīng)沒有強制線程終止的方法了由于方法可以讓一個線程終止掉另一個線程被終止的線程會立即釋放鎖,這可能會讓對象處于不一致的狀態(tài)。 前言 昨天已經(jīng)寫了: 多線程三分鐘就可以入個門了! 如果沒看的同學建議先去閱讀一遍哦~ 在寫文章之前通讀了一遍《Java 核心技術(shù) 卷一》的并發(fā)章節(jié)和《Java并發(fā)編程實戰(zhàn)》前面的部分,回顧了一下以前寫過的筆記。從今天開始進入多線程的知識點咯~ 我其實也是相...
摘要:死亡線程方法執(zhí)行結(jié)束,或者因異常退出了方法,則該線程結(jié)束生命周期。死亡的線程不可再次復生。直到當前的線程放棄此對象上的鎖定,才能繼續(xù)執(zhí)行被喚醒的線程。枚舉程序中的線程。強迫一個線程等待。通知一個線程繼續(xù)運行。 一. 線程狀態(tài)轉(zhuǎn)換圖 showImg(https://segmentfault.com/img/bV38ef?w=968&h=680); 線程間的狀態(tài)轉(zhuǎn)換說明: 新建(new)...
閱讀 2039·2023-04-25 23:30
閱讀 1459·2021-11-24 10:18
閱讀 3098·2021-10-09 09:54
閱讀 2024·2021-10-08 10:05
閱讀 3448·2021-09-23 11:21
閱讀 3170·2019-08-30 15:52
閱讀 1569·2019-08-30 13:05
閱讀 1068·2019-08-30 13:02