线程状态及转换
Java线程相关的方法
方法 | 定义所在类/接口 | 作用 | 说明 |
---|---|---|---|
run | java.lang.Runnable |
启动线程,之后线程状态变为可运行 ,等待CPU调度 |
抽象方法,实现类实现,线程运行的代码块 |
start | java.lang.Thread |
同run 方法 |
调用 new Thread( target:RunnableImpl) 指定的target的run 方法 |
sleep | java.lang.Thread |
休眠指定时间(millis ), 出让CPU使用权 |
不会释放锁资源(monitor ) |
join | java.lang.Thread |
等待(如指定时间,则最多等待这么多时间)指定线程退出 | 内部调用 java.lang.Object.wait() 方法 |
yield | java.lang.Thread |
与sleep 类似,只在不低于该线程优先级的线程才可执行 |
不可指定时间 |
wait | java.lang.Object |
使当前线程休眠一段时间直到其他线程调用notify /notifyAll |
必须在synchronized 块中使用,之后进程状态为等待 或计时等待 |
notify | java.lang.Object |
唤起等待队列中(等待 或计时等待 )线程以获取当前锁对象(monitor ) |
|
notifyAll | java.lang.Object |
唤起所有等待队列中的线程 | 后续具体哪个被唤起的线程可执行,取决于CPU调度 |