简介
线程分为了六种状态,如下:
初始状态(NEW):线程被构建,但是还没有调用start状态
运行状态(RUNNABLE):就绪和运行笼统称为运行中
等待状态分三种
阻塞状态(BLOCKED):等待调用synchronized
等待状态(WAITING):调用了wait方法
超时等待(TIME_WAITING):不同于等待,是到达一定的时间自动进入运行状态(Thread.sleep)
终止状态(TERMINATED): 表示当前线程执行完毕
线程阻塞状态
1.1、join(合并线程,等待该线程终止)
在没调用join之前,线程跑的是不规律的
1.2、yield 暂停当前正在执行的线程对象,并执行其他线程 static
1.3、sleep 休眠,休眠的时候不释放锁(比较常用)
使用场景
1.休眠线程
2.倒计时
3.模拟延迟(比如每10秒钟打印一次)
线程结束状态
1.自然终止:线程体运行完毕
2.外部干涉:
1)、线程体定义标识
2)、线程体使用该标识
3)、提供对外的方法改变该标识