线程状态和线程的常用方法

58 阅读1分钟

线程状态

在这里插入图片描述

线程状态描述
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()不会释放锁