线程状态
2022-11-29 18:27:12 60 举报
线程上下文和线程状态转换
作者其他创作
大纲/内容
执行Thread.start()
实例化
Object.notify()Object.notifyAll()LockSupport.unpark()
系统调度yield()
等待状态WAITING
终止TERMINATED
处于这种状态的线程不会被分配CPU执行时间,它们要等待被显式地唤醒,否则会处于无限期等待的状态。
运行中RUNNING
运行RUNNABLE
Object.sleep(long)Object.wait(long)Object.join(long)LockSupport.parkNanos(long)LockSupport.parkUntil(long)
Object.wait()Object.join()LockSupport.park()
就绪(READY)
就绪(ready)和运行中(running)两种状态笼统的称为“运行”
阻塞BLOCKED
获得锁
就绪状态READY
1. 就绪状态只是说你资格运行,调度程序没有挑选到你,你就永远是就绪状态。2. 调用线程的start()方法,此线程进入就绪状态。3. 当前线程sleep()方法结束,其他线程join()结束,等待用户输入完毕,某个线程拿到对象锁,这些线程也将进入就绪状态。4. 当前线程时间片用完了,调用当前线程的yield()方法,当前线程进入就绪状态。5. 锁池里的线程拿到对象锁后,进入就绪状态。
Thread
新建状态【new】
系统调度
执行完成
超时等待状态TIMED_WAITING
等待进入sychronized 方法或者同步块
0 条评论
下一页