package com.thread3;
/**
* 本文作者:谷哥的小弟
* 博客地址:http://blog.csdn.net/lfdfhl
*/
public class ThreadDaemon2 {
public static void main(String[] args) {
//获取当前线程(即主线程)的名称
String threadName = Thread.currentThread().getName();
//判断当前线程(即主线程)是否为守护线程
boolean isDaemon = Thread.currentThread().isDaemon();
System.out.println(threadName+"是守护线程么?"+isDaemon);
//创建子线程
MyRunnableImpl myRunnableImpl=new MyRunnableImpl();
Thread daemonThread=new Thread(myRunnableImpl, "守护线程");
//判断子线程是否为守护线程
isDaemon = daemonThread.isDaemon();
System.out.println("新创建的子线程是守护线程么?"+isDaemon);
//设置子线程为守护线程
daemonThread.setDaemon(true);
//再次判断子线程是否为守护线程
isDaemon = daemonThread.isDaemon();
System.out.println("新创建的子线程是守护线程么?"+isDaemon);
//开启子线程
daemonThread.start();
//模拟主线程执行任务
for(int i=0;i<10;i++) {
System.out.println(threadName+",i="+i);
}
}
}
//子线程
class MyRunnableImpl implements Runnable{
@Override
public void run() {
String threadName = Thread.currentThread().getName();
int i=0;
//模拟子线程执行任务
while(true) {
System.out.println(threadName+",i="+i);
i++;
}
}
}