线程状态及转换

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调度 |