开发者学堂课程【Java 高级编程:后台守护线程】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/20/detail/297
后台守护线程
在多线程里面可以进行守护线程的定义,也就是说如果现在主线程的程序或者其它的线程还在执行的时候,线程将一直存在,并且运行在后台状态。
在 Thread 类里面提供有如下的守护线程的操作方法:
l 设置为守护线程: public final void setDaemon(boolean on);
l 判断是否为守护线程:public final boolean isDaemon(); .
范例:使用守护线程
package cn.mldn.demo;
public class ThreadDemo
{
public static boolean flag = true;
public static void main(String[] args) throws Exception ThreaduserThread = new Thread(() ->
{
for (int x =
0
; x< Integer.MAX_ VALUEI; x ++)
{
try
{
Thread.sleep(100);
catch (InterruptedException e)
{
e.printStackTrace();
System.out.println(Thread. current Thread(). getName() + "
正在运行
x "
= "+ x);
)
},“用户线程");
Thread daemonThread = new Thread(() ->
{
for (int х = 0 ;x< Integer.MAX_ VALUE ; х ++)
{
try
{
Thread. sleep(100);
}
catch (InterruptedException e)
{
e.printStackTrace();
System. out. println(Thread.current Thread().getName()+"
正在运行
x "
= "+ x);
daemonThread. setDaemon(true);
//设置为守护线程
userThread.start( ) ;
daemonThread.start( ) ;
注:可以发现所有的守护线程都是围绕在用户线程的周围,如果程序执行完毕了,守护线程也就消失了在整个的 JVM 里面最大的守护线程就是 GC 线程。
程序执行中 GC 线程会一直存在,如果程序执行完毕,GC 线程也将消失。.