## 多線程--守護線程與非守護線程多線程
#### 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()