线程状态
| 线程状态 | 描述 |
|---|---|
| NEW | 线程刚刚创建,还没有启动 |
| RUNNABLE(READY 就绪,RUNNING 运行中) | 可运行状态,由线程调度器可以安排执行 |
| WAITING | 等待被唤醒 |
| TIMED WAITING | 隔一段时间后自动唤醒 |
| BLOCKED | 被阻塞,正在等待锁资源 |
| TERMINATED | 线程结束 |
注:在加锁时,只有使用synchronized才会进入BLOCKED状态,使用Lock只会进入WAITING或者TIMED WAITING状态
常用方法
t.sleep()
睡眠,当前线程暂停一段时间
t.yield()
让出CPU进到等待队列
t.join()
加入一个线程,等待这个线程结束,用来控制线程执行顺序,t1结尾调用t2.join(),执行顺序就是t1-t2
o.wait()和o.notify()
Object中的方法,通常用在线程的暂停和唤醒上 调用o.wait()使线程暂停,也就是阻塞住,在其他线程中调用调用o.notify()可以唤醒 需要注意的是,o.notify()不会释放锁