java 主线程 守护线程_JAVA多线程之守护线程

守护线程:顾名思义,就是守护线程的线程;在JAVA线程分为 用户线程(User Thread)和守护线程(Daemon Thread) ;守护线程就是用来守护用户线程的。所以JVM中如果没有需要守护的线程了,守护线程也就没有存在的意义;守护线程最典型的应用就是 GC (垃圾回收器)。守护线程并非只有虚拟机内部提供,用户在编写程序时也可以自己设置守护线程

一、设置守护线程

4b596fd4ac8fd0547efc62a9c931b0df.png

20dff029b2a620dff0e5dc5cdf28f0e6.png

由此可见JAVA中创建线程默认是User Thread ;

setDaemon()方法必须在调用线程的start()方法之前调用

二、守护线程的特点

1、守护线程,在所有的的非守护线程(即用户线程)结束之后,程序就会结束,JVM退出,同时也就会杀死所有的守护线程。所以也就意味着,守护线程不适合去访问固有资源,比如文件,数据库。因为随时可能中断;守护线程会随着主程序的结束而结束,但是用户线程不会,或者说只要有一个用户线程未退出,进程就不会终止。

d156812ae5155eb77eb6a54d10ea7769.png

2、默认情况下,程序员创建的线程是用户线程;用setDaemon(true)可以设置线程为后台线程;而用isDaemon( )可以判断一个线程是前台线程还是后台线程;main 线程是一个用户线程;jvm的垃圾回收器其实就是一个守护线程;

02c76574c83d07429f5e23d716567f36.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值