多線程--守護線程與非守護線程

## 多線程--守護線程與非守護線程多線程




#### 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()

相關文章
相關標籤/搜索