📄 daemon.java
字号:
package book.thread;
/**
* Daemon(守护)线程
* Daemon线程区别一般线程之处是:
* 只有虚拟机中的用户线程(非Daimon线程)全部结束,Daemon线程就会立即结束,并且也不会调用finally里的语句。
* daemon线程所产生的所有线程都是daemon的
*/
public class Daemon {
static class MainThread extends Thread {
public void run() {
System.out.println("MainThread is daemon? " + this.isDaemon());
System.out.println("MainThread begin!");
//启动子线程
Thread sub1 = new SubThread();
//sub1线程为守护线程
sub1.setDaemon(true);
sub1.start();
try {
Thread.sleep(1000);
}catch (InterruptedException e) {
e.printStackTrace();
} finally {
System.out.println("MainThread" + " finally");
}
System.out.println("MainThread end!");
}
}
static class SubThread extends Thread {
public void run() {
System.out.println("SubThread is daemon? " + this.isDaemon());
System.out.println("SubThread begin!");
int i = 0;
try {
while (i < 10) {
System.out.println("SubThread " + i++);
Thread.sleep(200);
}
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
System.out.println("SubThread finally");
}
System.out.println("SubThread end!");
}
}
public static void main(String[] args) {
System.out.println("Main begin!");
//默认情况下mainThread是普通线程
Thread mainThread = new MainThread();
//启动mainThread线程
mainThread.start();
try {
Thread.sleep(500);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
System.out.println("Main end!");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -