java 守护程序线程_如何在Java中创建守护程序线程?

Java中的守护程序线程

守护程序是在后台执行的线程。垃圾收集器是守护程序线程的一个示例,因为我们已经看到垃圾收集器在后台运行。

守护程序线程的目的是为用户线程提供支持。

例如,如果用户线程执行的内存不足(即用户线程需要更多的内存来执行),那么jvm将调用垃圾回收器(守护程序线程)以通过内存空间销毁无用的对象而获得空闲空间,并且用户线程可以快速执行。

通常,具有高优先级的线程将首先有机会执行,但守护进程线程将以最低优先级运行(但这并不意味着守护程序线程不能在需要时以最高优先级运行)。

与守护程序线程相关的方法很少public boolean isDaemon()

public void setDaemon(boolean b)

在上述方法中描述为:isDaemon()方法检查线程是否为守护程序。

如果需要,setDaemon(boolean b)方法将守护程序性质设置为非守护程序,或者将非守护程序设置为守护程序。通过在方法true或false中传递值。如果设置为true,它将使非守护程序成为守护程序,否则使守护程序成为非守护程序。

setDaemon(boolean b)在启动线程之前可以正常工作,否则我们将获得运行时异常。

主线程的性质是非守护程序,我们不能更改主线程的行为,而其他线程的性质是由父级继承的,或者可以由setDaemon(boolean b)设置。

示例

在此示例中,我们演示了setDaemon(boolean b)方法的行为class DaemonThread extends Thread{

public void run(){

System.out.println("这个线程是守护进程线程" + Thread.currentThread().isDaemon());

}

}

class NDThread{

public static void main(String[] args){

DaemonThread dt = new DaemonThread();

System.out.println("Behaviour before setDaemon()" + dt.isDaemon());

dt.setDaemon(true);

dt.start();

System.out.println("Behaviour after setDaemon()" + dt.isDaemon());

}

}

输出结果D:\Java Articles>java NDThread

Behaviour before setDaemon()false

Behaviour after setDaemon()true

这个线程是守护进程线程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值