Java线程

线程状态及转换

java线程状态图

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