JavaSE8基础 多线程setDaemon 守护线程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaSE8基础 多线程setDaemon 守护线程相关的知识,希望对你有一定的参考价值。
礼悟:
好好学习多思考,尊师重道存感恩。叶见寻根三返一,活水清源藏于零。
虚怀若谷良心主,皓月当空自在王。愿给最苦行无悔,诚劝且行且珍惜。
os :windows7 x64
jdk:jdk-8u131-windows-x64
ide:Eclipse Oxygen Release (4.7.0)
Thread的子类:
package jizuiku2; import java.util.Date; /* * @version V17.09 */ public class MyThread extends Thread { // 具体的循环次数 private int num; public MyThread(int num) { // TODO Auto-generated constructor stub this.num = num; } @Override public void run() { // TODO Auto-generated method stub super.run(); // new Date().getTime() 从标准0时刻到现在 毫秒值的累计 for (int i = 0; i < this.num; ++i) { System.out.println(getName() + " " + i + " " + new Date().getTime()); } } }
测试类:
package jizuiku2; /* * @version V17.09 */ public class SHDemo { public static void main(String[] args) { MyThread zhu_mt50 = new MyThread(50); MyThread sh_mt100 = new MyThread(50); MyThread sh_mt200 = new MyThread(50); // 设置下面两个线程为守护线程 sh_mt100.setDaemon(true); sh_mt200.setDaemon(true); zhu_mt50.setName("非守护"); // 当运行的唯一线程都是守护进程线程时,Java虚拟机将退出。 // main所在的线程和zhu_mt50不是守护进程 zhu_mt50.start(); sh_mt100.start(); sh_mt200.start(); for (int i = 0; i < 500; i++) { System.out.println(i); } System.out.println("main所在的线程结束"); } }
结果:
当被守护的main线程结束时
守护线程也紧跟着结束
非守护线程运行到了最后
API:
在视频教程中,风清扬老师用一张图 生动形象的解释了 守护线程
很有趣。
Java优秀,值得学习。
学习资源:itcast和itheima视频库。如果您有公开的资源,可以分享给我的话,用您的资源学习也可以。
博文是观看视频后,融入思考写成的。博文好,是老师讲得好。博文坏,是 给最苦 没认真。
以上是关于JavaSE8基础 多线程setDaemon 守护线程的主要内容,如果未能解决你的问题,请参考以下文章
JAVA-初步认识-第十四章-多线程(守护线setDaemon)