`
walkes
  • 浏览: 26444 次
社区版块
存档分类
最新评论

守护线程

阅读更多

守护线程是为其他线程的运行提供便利的线程。守护线程不会阻止程序的终止。

Java的垃圾收集机制的某些实现就使用了守护线程。

非守护线程包括常规的用户线程或诸如用于处理GUI事件的事件调度线程。

程序可以包含守护线程和非守护线程。

程序只有守护线程时,该程序便可以结束运行。

如果要使一个线程成为守护线程,则必须在调用它的start方法之前进行设置(通过以true作为参数调用线程的setDaemon方法,可以将该线程定义为一个守护线程),否则会抛出IllegalThreadStateException异常。如果线程是守护线程,则isDaemon方法返回真。

注:1、如果在线程已经启动后,再试图使该线程成为守护线程,则会导致IllegalThreadStateException异常

        2、事件调度线程是一个无穷循环的线程,而不是守护线程。因而,在基于窗口的应用程序调用System类的exit方法之前,事件调度线程不会终止。

        3、不能将关键任务分配给守护线程。这些任务将会在事先没有警告的情况下终止,这可能导致不能正确地完成它们

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics