关于守护线程

        Java中的线程分为两类,分别为 daemon 线程(守护线程)user 线程(用户线程)。在JVM 启动时会调用 main 函数,main函数所在的线程就是一个用户线程。其实在 JVM 内部同时还启动了很多守护线程, 比如垃圾回收线程。

  • 那么守护线程和用户线程有什么区别呢?

        区别之一是当最后一个非守护线程束时, JVM会正常退出,而不管当前是否存在守护线程,也就是说守护线程是否结束并不影响 JVM退出。换而言之,只要有一个用户线程还没结束,正常情况下JVM就不会退出。

  • 哪些线程属于守护线程?
  1. 垃圾回收器线程(Garbage Collector Thread):负责回收不再使用的对象,并释放内存资源。

  2. Finalizer线程:当垃圾回收器回收一个对象时,如果该对象的类重写了finalize()方法,则该方法会在Finalizer线程中被调用。

  3. 周期性任务调度线程(Timer Thread):负责执行定时任务。它是通过Java的 Timer 类来实现的。

  4. 系统事件分发线程(System Event Dispatch Thread):负责处理Swing组件的事件分发和处理,保证界面的响应速度。

你可能感兴趣的:(jvm,线程,守护线程)