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结束