java线程之守护线程和用户线程

2019-01-21 02:41:18来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

/**
* <p>Title: Demo3.java</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2017</p>

* <p>Company: www.baidudu.com</p>
* @author shenlan
* @date 2019年1月19日
* @version 1.0
*/
package test;

import java.util.concurrent.TimeUnit;

/**
* @Title: Demo3.java
* @Description:模拟:创建主线程(用户线程)中创建一个子线程为守护线程,执行main方法(用户线程)
* --断点测试..执行main方法,启动主线程(不结束main(用户线程))
* ==输出..执行一次主线程,由于main方法(用户线程)未结束,守护线程每秒输出一次(守护线程守护的是用户线程)
* --正常模式..
* ==输出..主线程执行一次,守护线程执行一次,只有由于用户线程结束,JVM退出,守护线程结束
* //将(子线程)守护线程改为用户线程时,主线程结束,主线程中的子线程一直运行(每秒执行一次)
*
* 注意 :不是说当前子线程是守护线程,主线程结束,子线程就跟着结束,前提条件是:当JVM应用实例中没有应用线程继续执行,如果有其他用户线程继续执行,那么后台线程不会中断.
* @Copyright: 投道科技 (c) 2018
* @Company: 投道科技
* @author 阿涛
* @date 2019年1月19日
* @version 1.0
*/
public class Demo3 {

public static void main(String[] args) {

Thread mainThread = new Thread(new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub
Thread childrenThread = new Thread(new ChildrenThread());
childrenThread.setDaemon(true);
// --守护线程必须在启动线程之前操作
childrenThread.start();
System.out.println("I'm main thread.");

}
});

mainThread.start();

}

}

class ChildrenThread implements Runnable{

@Override
public void run() {

while (true) {
System.out.println("I'm children thread.");

try {
TimeUnit.MILLISECONDS.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

}


原文链接:https://www.cnblogs.com/javaxingtao/p/10291769.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:JSP页面无法正常加载JS

下一篇:蓝桥杯第五届JavaC组杨辉三角问题解决方法