二:多线程之守护线程

2019-05-28  本文已影响0人  一森

在Java中线程分为两种:

守护线程的生命周期:

基于其他线程,如果在程序中所有用户线程都执行完毕了,那么守护线程就会被销毁。

守护线程的优先级:

守护线程的优先级比较低,用于为系统中的其它对象和线程提供服务。

举个雷子:

    // 创建一个用户进程,进行一行打印操作
    public static class UserThread extends Thread {
        @Override
        public void run() {
            super.run();

            System.out.println("我是" + (Thread.currentThread().isDaemon() ? "守护进程" : "用户进程"));
        }
    }

    // 创建一个守护进程,进行循环打印,看打印多久
    public static class DaemonThread extends Thread {
        @Override
        public void run() {
            super.run();

            while (true) {
                System.out.println("我是" + (Thread.currentThread().isDaemon() ? "守护进程" : "用户进程"));
            }
        }
    }

    public static void main(String[] agrs) {
        // 在main函数中启动用户线程
        UserThread userThread = new UserThread();
        userThread.start();

        // 在main函数中启动守护线程
        DaemonThread daemonThread = new DaemonThread();
        // 将该线程设置成守护线程
        daemonThread.setDaemon(true);
        daemonThread.start();
    }

既然守护线程是依赖于其他线程的,那么当UserThread线程执行完毕后,DaemonThread线程就会失去对象并被销毁,来看输出结果:

我是用户进程
我是守护进程
我是守护进程
我是守护进程
我是守护进程
Process finished with exit code 0
上一篇 下一篇

猜你喜欢

热点阅读