003 线程属性
一 . 概述
一個線程可以具有很多的屬性.如,名字,優先級,是否后臺線程.
?二 . 線程的名字
這個十分好理解,就是在創建線程之后給一個線程指定一個名字.
我們給一個線程分配名字的常用方式有兩個:
[1]在Thread的構造函數之中給出線程的名字
[2]調用線程實例的setName()方法給線程一個名字.
三 .線程的優先級
在創建線程的時候可以給線程指定一個優先級,但是這個優先級不是可靠的一種決定線程運行的參數.
優先級只能說運行的機會比較多,但是在指定時間未必是它在運行.
注意: 我們不能指望優先級來控制線程的運行狀態.
四 線程組
線程在創建的時候會指定一個線程組,如果沒有顯示指定,那么這個線程所屬的線程組就是
其父線程所在的線程組.
注意:
[1]main方法運行時的線程組是main.
[2]線程組在模型上講應該是一個樹形的結構.
[3]線程組的作用是控制一組線程的方式,盡管我們并不常用.
在Bloch的書中,對線程組的一個概念,那就是線程組是一個失敗的概念,我們現在對此并沒有十分的依賴.
五 .守護線程
一個線程在創建的時候,可以指定是否是守護線程.
守護線程:守護線程的生命周期最長不會多于最后一個非守護線程終結的時刻.
我們常常使用守護線程做一些維護的工作,輔助的工作.
當我們的主任務完成,守護線程自動終結.
創建一個守護線程的方式就是使用:
public final void setDaemon(boolean on) {checkAccess();if (isAlive()) {throw new IllegalThreadStateException();}daemon = on;}切記: 為線程設置其守護線程的屬性需要在線程啟動之前,否則就會出現一個異常,這個在源代碼之中我們可以看到.[紅色的部分表示出現線程狀態異常]
轉載于:https://www.cnblogs.com/trekxu/p/8975080.html
總結
- 上一篇: pynlpir + pandas 文本分
- 下一篇: OutOFMemoryError