-
在Java中java.lang.Thread.isDaemon()方法用来测试线程是否为守护线程
public final boolean isDaemon()
如果结果返回True该线程就是守护线程
- Thread.setDaemon(true)必须在Thread.start()方法之前设置,否则会出现IllegalThreadStateException异常
- 不能把正在运行的常规线程设置为守护线程
- 守护线程应该永远不去访问固有资源,如:数据库、文件等。因为它会在任何时候甚至在一个操作的中间发生中断。
Java中有两种线程,一种是用户线程,一种是守护线程。守护线程是一种特殊的线程,它的作用是为其他线程的运行提供便利的服务,最典型的应用便是GC线程。如果进程中不存在非守护线程了,那么守护线程自动销毁,因为没有存在的必要,为别人服务,结果服务的对象都没了,当然就销毁了
在主线程关闭后无需手动关闭守护线程,因为会自动关闭,避免了麻烦,Java垃圾回收线程就是一个典型的守护线程,简单粗暴的可以理解为所有为线程服务而不涉及资源的线程都能设置为守护线程。
网友评论