您的位置:首页 > 编程语言 > Java开发

JavaSE8基础 多线程setDaemon 守护线程

2017-10-08 23:55 375 查看
礼悟:
公恒学思合行悟,尊师重道存感恩。叶见寻根三返一,江河湖海同一体。
虚怀若谷良心主,愿行无悔给最苦。读书锻炼养身心,诚劝且行且珍惜。

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视频库。如果您有公开的资源,可以分享给我的话,用您的资源学习也可以。
博文是观看视频后,融入思考写成的。博文好,是老师讲得好。博文坏,是 给最苦 没认真。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: