概述
1. 守护线程
守护线程是比较特殊特殊的线程,能够自动结束生命周期的特性。
GC就是一个守护线程,如果主程序已经结束,但是GC还在运行
在游戏中,有多个线程,计算角色金钱,经验如果是是一个非守护线程的话,角色已经下线,而线程还在运行,经验,金钱不断增加,游戏会有很大的bug.
设置守护线程的方法为setDaemon(true),需要在线程启动前进行设置为守护线程。
例子:
package com.mxli.concurrent;
public class ConditionDemo {
public static void main(String[] args) throws InterruptedException {
Thread t=new Thread(){
@Override
public void run() {
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("守护线程");
}
};
t.setDaemon(false);
t.start();
Thread.sleep(10);
System.out.println(Thread.currentThread().getName()+"finished");
}
}
运行结果为:
mainfinished
守护线程
如果t为非守护线程、则main线程退出后、则t还在执行
如果把t.setDaemon(true)后,
package com.mxli.concurrent;
public class ConditionDemo {
public static void main(String[] args) throws InterruptedException {
Thread t=new Thread(){
@Override
public void run() {
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("守护线程");
}
};
t.setDaemon(true);
t.start();
Thread.sleep(10);
System.out.println(Thread.currentThread().getName()+"finished");
}
}
执行结果为:mainfinished
守护线程则不在输出,意味着主线程已经退出JVM,通过以上两个例子可以说明,守护线程能够结束生命周期的特性。
最后
以上就是淡淡超短裙为你收集整理的JAVA多线程之守护线程的全部内容,希望文章能够帮你解决JAVA多线程之守护线程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复