1、Daemon线程
daemon线程生命周期依附于主线程,主线程执行完,daemon无论业务是否执行完成,他都会马上终止:
在java中,通过Thread.currentThread().setName("刘备");===设置主线程的及其主线程名称;
而随从线程的话,直接通过对象.setDaemon(true);来设置对应的随从线程
具体代码:
package duoxiancheng;
public class MyThread extends Thread {
@Override
public void run() {
for (int i = 0; i < 1000; i++) {
System.out.println(Thread.currentThread().getName());
System.out.println(i);
}
}
}
package duoxiancheng;
import java.util.Iterator;
public class ThreadCmj {
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
MyThread my1=new MyThread();
MyThread my2=new MyThread();
// MyThread my3=new MyThread();
my1.setName("张飞");
my2.setName("关于");
//设置主线程
Thread.currentThread().setName("刘备");
//设置随从线程
my1.setDaemon(true);
my2.setDaemon(true);
// my3.setName("3333");
my1.start();
// my1.join();
my2.start();
// my3.start();
for (int i = 0; i <10; i++) {
System.out.println(Thread.currentThread().getName());
System.out.println(i);
}
}
}
从代码中可以了解到,主线程则在main方法下跑对应的主线程,当循环完10次停止后,
而跟随线程跑对应的MyThread中的线程逻辑;my1与my2也会跟随主线程的结束而结束