博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
守护线程
阅读量:5299 次
发布时间:2019-06-14

本文共 1567 字,大约阅读时间需要 5 分钟。

main线程是用户线程;只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM一同结束工作。

守护线程是在用户线程都退出时,突然退出的,此时守护线程的任务不一定完成了。

 

public class rrr {    public static void main(String[] ddd){        FutureTimeOutThread timeOutThread = new FutureTimeOutThread();        timeOutThread.setDaemon(true);//守护线程,         timeOutThread.start();                FutureTimeOutThread2 timeOutThread1 = new FutureTimeOutThread2();        timeOutThread1.setDaemon(false);// 不是守护        timeOutThread1.start();                System.out.println("2222");    }    static class FutureTimeOutThread extends Thread{
//守护 @Override public void run() { FutureTimeOutThread1 timeOutThread = new FutureTimeOutThread1(); timeOutThread.start(); for(int i =0;i<3;i++) {
//外层线程退出,里面开的线程不会退出,只有非守护都退出才退出 System.out.println("1111"); } } } static class FutureTimeOutThread1 extends Thread{
//默认也是守护 @Override public void run() { for(int i =0;i<3;i++) { System.out.println("222"); } } } static class FutureTimeOutThread2 extends Thread{
//不是守护 @Override public void run() {
//main线程执行完,只要这个非守护线程还在,守护就还在。 //main执行完,这个非守护可以一直执行。 //main和这个非守护都执行完,守护立马退出。 //守护都执行完,这个非守护不会退出 for(int i =0;i<3;i++) { System.out.println("333"); } } }}

 

转载于:https://www.cnblogs.com/yaowen/p/10695440.html

你可能感兴趣的文章
Linux 中【./】和【/】和【.】之间有什么区别?
查看>>
内存地址对齐
查看>>
看门狗 (监控芯片)
查看>>
#ifndef #define #endif
查看>>
css背景样式
查看>>
JavaScript介绍
查看>>
开源网络漏洞扫描软件
查看>>
yum 命令跳过特定(指定)软件包升级方法
查看>>
创新课程管理系统数据库设计心得
查看>>
Hallo wolrd!
查看>>
16下学期进度条2
查看>>
Could not resolve view with name '***' in servlet with name 'dispatcher'
查看>>
Chapter 3 Phenomenon——12
查看>>
C语言中求最大最小值的库函数
查看>>
和小哥哥一起刷洛谷(1)
查看>>
jquery对id中含有特殊字符的转义处理
查看>>
遇麻烦,Win7+Ubuntu12.10+Archlinux12.10 +grub
查看>>
SqlBulkCopy大批量导入数据
查看>>
pandas 修改指定列中所有内容
查看>>
「 Luogu P2285 」打鼹鼠
查看>>