美文网首页
父子进程 父子线程 守护线程

父子进程 父子线程 守护线程

作者: 不存在的里皮 | 来源:发表于2019-04-11 01:52 被阅读0次

参考

Java中的父线程与子线程
守护线程与守护进程

主线程与子线程生命周期没关系

Son.java

public class Son extends Thread {
    private Thread parent;

    public Son(Thread parent) {
        this.parent = parent;
    }

    @Override
    public void run() {
        while (true) {
            System.out.println("thread say");

            try {
                Thread.sleep(1000);
                System.out.println(parent.isAlive());
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

Main.java

public class Main {
    public static void main(String[] args) {
        Son son = new Son(Thread.currentThread());
        son.start();
        System.out.println("main thread ending");
    }
}

运行Main可得到以下结果:


可以看到,主线程结束main方法后即死亡,而子线程依旧存活。

结论

  1. 主进程在其代码结束后,守护进程在此时被回收,然后主进程会一直等非守护的子进程都运行完毕后回收子进程的资源(否则会产生僵尸进程),才会结束。
  2. 主线程与子线程的生命周期没有关系。主线程结束运行后,子线程继续运行。所有非守护线程死亡后,守护线程被强制结束。

相关文章

  • 父子进程 父子线程 守护线程

    参考 Java中的父线程与子线程守护线程与守护进程 主线程与子线程生命周期没关系 Son.java Main.ja...

  • java——多线程讲解三

    java多线程的补充:守护线程(后台线程)守护线程:在一个进程中如果只剩下了守护线程,那么守护线程也会死亡。任何一...

  • Java-守护线程

    前言:Java中有两类线程:用户线程和守护线程 其实以前老早就听过守护进程,很少有人提起守护线程; 为什么会出现守...

  • 守护线程

    在java线程中有两种线程,一种是用户线程,另一种是守护线程。 守护线程是一种特殊的线程,当进程中不存在非守护线程...

  • Python入门开发学习笔记之了解守护线程的概念

    本节重点 了解守护线程的概念了解守护线程与守护进程的区别本节时长需控制在15分钟内 一 守护线程 无论是进程还是线...

  • 02. 守护线程和线程之间共享全局变量

    1. 守护线程 使用setDaemon(True)把所有的子线程都变成了主线程的守护线程,因此当主进程结束后,子线...

  • 父子线程值传递问题,ThreadLocal存储值变化

    此处引用了alibaba线程池来解决父子线程间传值及线程池使用后无法初始化问题

  • Nodejs child_process

    nodejs以单线程模式运行,但使用事件驱动处理并发,有助于创建多个子进程提高性能。默认nodejs父子进程会建立...

  • 2021-01-22 主线程与守护线程

    默认情况下,Java 进程需要等待所有线程都运行结束,才会结束。有一种特殊的线程叫做守护线程,只要其它非守护线程运...

  • python24-多线程和多进程基础

    本篇主要讲的是多线程和多进程的一些基础知识,包括并发、并行、进程、线程相关概念以及线程的创建与调用、阻塞线程和守护...

网友评论

      本文标题:父子进程 父子线程 守护线程

      本文链接:https://www.haomeiwen.com/subject/udxziqtx.html