线程状态
2023-06-23 20:46:07 0 举报
Java线程状态
作者其他创作
大纲/内容
执行Thread.start()
实例化
超时到期Object.notify()Object.notifyAll()LockSupport.unpark()
失去执行权yield()
处于这种状态的线程不会被分配CPU执行时间片,到大超时时间会被自动唤醒
阻塞等待状态WAITING
终止、死亡状态TERMINATED
处于这种状态的线程不会被分配CPU执行时间,它们要等待被显式地唤醒,否则会处于无限期等待的状态。
运行时状态RUNNING
运行RUNNABLE
通常这是一种被动的、短时间的同步阻塞,由同步机制引起
Object.notify()Object.notifyAll()LockSupport.unpark()
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
获得锁
1. 就绪状态只是说你有资格运行,调度程序没有挑选到你,你就永远是就绪状态。2. 调用线程的start()方法,此线程进入就绪状态。3. 当前线程sleep()方法结束,其他线程join()结束,等待用户输入完毕,某个线程拿到对象锁,这些线程也将进入就绪状态。4. 当前线程时间片用完了,调用当前线程的yield()方法,当前线程进入就绪状态。5. 锁池里的线程拿到对象锁后,进入就绪状态。
Thread
新建状态NEW
获取CPU、获取执行权
执行完成
超时等待状态TIMED_WAITING
等待进入sychronized 方法或者同步块
0 条评论
下一页