daemon /'dimən/ n. 守护进程;后台程序
1.守护线程
当主线程销毁,会和主线程一起销毁。如:当主线程运行的时候,gc线程一起运行。
2.非守护线程
如果主线程销毁,用户线程继续运行且互不影响。
package mytest;
public class Main {
public static void main(String[] args) {
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("我的子线程(用户线程)");
}
}
});
t1.start();
for (int i = 0; i < 10; i++) {
try {
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("mian:i"+i);
}
System.out.println("主线程执行完毕...");
}
}
t1.setDaemon(true);
mian:i0
mian:i1
mian:i2
我的子线程(用户线程)
mian:i3
mian:i4
mian:i5
我的子线程(用户线程)
mian:i6
mian:i7
mian:i8
我的子线程(用户线程)
mian:i9
主线程执行完毕...
mian:i0
mian:i1
mian:i2
我的子线程(用户线程)
mian:i3
mian:i4
mian:i5
我的子线程(用户线程)
mian:i6
mian:i7
mian:i8
我的子线程(用户线程)
mian:i9
主线程执行完毕...
我的子线程(用户线程)
我的子线程(用户线程)
我的子线程(用户线程)