线程状态及转换

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