我是靠谱客的博主 淡淡超短裙,最近开发中收集的这篇文章主要介绍JAVA多线程之守护线程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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多线程之守护线程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部