1.簡介
JUC自JDK1.5出現,為java.util.concurrent
包的簡稱
1.1.線程狀態
線程狀態枚舉類:Thread.State
public enum State {
NEW,
RUNNABLE,
BLOCKED,
WAITING, // 持續等待
TIMED_WAITING, // 有最大等待時間的等待
TERMINATED;
}
1.2.wait與sleep區別
(1)sleep是Thread的靜態方法,wait是Object的方法,任何對象實例均能調用
(2)sleep不會釋放鎖,也不需要占用鎖,但是wait會釋放鎖,其調用前提是當前線程占有鎖(即代碼在synchronized
中)
(3)均可以被interrupted方法中斷
1.3.用戶線程與守護線程
主線程結束后,如果用戶線程仍在運行,則JVM存活
但是如果沒有用戶線程,只有守護線程,則JVM結束