• 用户线程:也叫工作线程,当线程的任务执行完成或通知方式结束;
  • 守护线程:一般是为工作线程服务的,当所有的用户线程结束,守护线程自动结束。最经典的一个守护线程案例就是 Java 的垃圾回收线程;

setDaemon 方法

使用 setDaemon 方法,可以将某个线程设置为守护线程。

  1. public class Main {
  2. public static void main(String[] args) {
  3. Deamon deamon = new Deamon();
  4. deamon.setDaemon(true);
  5. deamon.setName("守护线程");
  6. deamon.start();
  7. Task task = new Task();
  8. task.setName("任务1");
  9. task.start();
  10. }
  11. }
  12. class Deamon extends Thread {
  13. @Override
  14. public void run() {
  15. while (true) {
  16. try {
  17. sleep(1000);
  18. } catch (InterruptedException e) {
  19. e.printStackTrace();
  20. }
  21. System.out.println(getName() + ": 监视中...");
  22. }
  23. }
  24. }
  25. class Task extends Thread {
  26. @Override
  27. public void run() {
  28. for (int i = 0; i < 5; i++) {
  29. try {
  30. sleep(1000);
  31. } catch (InterruptedException e) {
  32. e.printStackTrace();
  33. }
  34. System.out.println(getName() + ": " + i);
  35. }
  36. }
  37. }