天天看点

后台守护线程|学习笔记

开发者学堂课程【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 = 

 ; 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 线程也将消失。.