## 多线程--守护线程与非守护线程多线程
#### 1.什么是守护线程,什么是非守护线程ide
什么是守护线程,和main相关,用户线程,用户本身建立的线程,若是主线程中止掉,不会影响用户线程spa
用户线程也叫非守护线程线程
gc线程 (线程不定时回收垃圾)属于守护线程blog
当全部的非守护线程结束时,程序也就终止了,同时会杀死进程中的全部守护线程进程
#### 2.守护线程特征:图片
有一个特征,和主线程一块儿销毁ci
#### 3.非守护线程特征:it
和主线程互不影响io
#### Java中有两种线程,一种是用户线程,另外一种是守护线程。
用户线程是指用户自定义建立的线程,主线程中止,用户线程不会中止
守护线程当进程不存在或主线程中止,守护线程也会被中止。
```
thread.setDaemon(true); //设置为守护线程
代码以下 :
```
#### 另外有几点须要注意:
一、setDaemon(true)必须在调用线程的start()方法以前设置,不然会抛出IllegalThreadStateException异常。
二、在守护线程中产生的新线程也是守护线程。
三、 不要认为全部的应用均可以分配给守护线程来进行服务,好比读写操做或者计算逻辑。
#### 除 JVM 内部的守护线程外,用户能够经过如下方法设置守护线程:
```
public final void setDaemon(boolean on)
```
能够经过如下方法查询线程是否为守护线程:
```
public final boolean isDaemon()