高并发编程第一阶段12讲: Daemon线程

什么是守护线程

  • 守护线程的作用是为用户线程提供服务的,且仅在用户线程运行时才需要。当所有用户线程完成执行后,JVM就会终止,也就是说,守护线程会自动退出。
  • 但是守护线程并不是 100% 不能阻止 JVM 退出的。守护线程中设计不良的代码可能会阻止 JVM 退出。例如,在正在运行的守护线程上调用Thread.join() 可以阻止应用程序的关闭。

使用场景

  • 心跳检查,专门开辟一个守护线程用于心跳检查,主线程结束后,心跳检查线程自动退出。避免主线程结束之前需要主动通知心跳检查线程结束(但又不能完全保证心跳检查线程)
  • 守护线程一般不用于I/O任务,因为突然退出,会导致资源未正常关闭

你可能感兴趣的:(多线程)