利用setDaemon(true)设置守护线程

来源:互联网 发布:韩国网络女模特排名 编辑:程序博客网 时间:2024/06/09 20:22

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

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

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

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

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

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

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

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

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

原创粉丝点击