试题详情
简答题什么是守护线程?它和非守护线程有什么不同?
  • 所谓“守护线程(daemonthread)”是指,只要程序还在运行,它就应该在后台提供某种公共服务的线程,但是守护线程不属于程序的核心部分。因此,当所有非守护线程都运行结束的时候,程序也结束了。相反,只要还有非守护线程在运行,程序就不能结束。
    事实上,“守护线程”和“非守护线程”本质上并没有什么区别,只是JVM对其控制的方式有所不同而已。主要表现在:第一,守护线程一般是在后台提供某种服务,而非程序核心部分的线程,所以它的优先级最低。这意味着JVM会尽量先调度那些非守护线程运行。第二,程序中所有非守护线程都已结束运行时,程序就结束。
  • 关注下方微信公众号,在线模考后查看

热门试题