守护线程是一种特殊的线程,是在后台完成一些系统性的服务。如垃圾回收线程、JIT线程。与守护线程相对的就是用户线程,用户线程可以认为是系统的工作线程。
    当一个 Java 程序只有守护线程时,Java 虚拟机就会退出。

    1. package com.demo.base;
    2. public class ThreadDemo {
    3. public static void main(String[] args) {
    4. Thread daemonT = new Thread(new MyRunnable(), "守护线程");
    5. // 设置 daemonT 线程为守护线程
    6. daemonT.setDaemon(true);
    7. daemonT.start();
    8. try {
    9. Thread.sleep(5000);
    10. } catch (InterruptedException e) {
    11. e.printStackTrace();
    12. }
    13. System.out.println("用户线程退出");
    14. }
    15. }
    16. class MyRunnable implements Runnable {
    17. @Override
    18. public void run() {
    19. String name = Thread.currentThread().getName();
    20. System.out.println("线程: " + name + " 开始执行。。。");
    21. int i = 0;
    22. while (true){
    23. System.out.println("线程: " + name + "---" + i);
    24. i++;
    25. try {
    26. Thread.sleep(500);
    27. } catch (InterruptedException e) {
    28. e.printStackTrace();
    29. }
    30. }
    31. }
    32. }