今天才知道Daemon的意思是什么?

这段时间在看别人的代码,其中用到了线程。有一个方法setDaemon,不知道是什么意思,于是到google上搜索了一下。
"守护线程",当setDaemon(true)的时候,说明该线程是守护线程。
守护线程: 在Java里面的定义是,如果虚拟机中只有守护线程在运行,则虚拟机退出。虚拟机中可能会同时有很多个线程在运行,只有当所有的非守护线程都结束的时候,虚拟机的进程才会结束,不管在运行的线程是不是main()线程。

public class TestDaemon implements Runnable{
private int count=0;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Thread a=new Thread(new TestDaemon(),"TestDaemon");
a.setDaemon(true);
a.start();
}

@Override
public void run() {
// TODO Auto-generated method stub
while(true){
System.out.println("TestDaemon Running!!!"+count++);
}
}

}

当a.setDaemon(true);的时候,控制台将输出:
TestDaemon Running!!!0
TestDaemon Running!!!1
...
TestDaemon Running!!!232
如果当a.setDaemon(false);的时候,控制台将输出:
TestDaemon Running!!!0
TestDaemon Running!!!1
...
TestDaemon Running!!!232
...

实际上servlet就是一个守护线程,我们可以用下面的代码去测试:

System.out.println(Thread.currentThread().isDaemon());//输出:true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值