Son.java
public class Son extends Thread {
private Thread parent;
public Son(Thread parent) {
this.parent = parent;
}
@Override
public void run() {
while (true) {
System.out.println("thread say");
try {
Thread.sleep(1000);
System.out.println(parent.isAlive());
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
Main.java
public class Main {
public static void main(String[] args) {
Son son = new Son(Thread.currentThread());
son.start();
System.out.println("main thread ending");
}
}
运行Main
可得到以下结果:
可以看到,主线程结束main
方法后即死亡,而子线程依旧存活。