java线程的状态
2021-04-06 14:41:38 0 举报
java线程的状态
作者其他创作
大纲/内容
Object.wait():将owner线程放到WaitSet中Object.notify():随机唤醒WaitSet中的一个线程Object.notifyAll():唤醒WaitSet中的所有线程Thread.seelp(long):让出CPU的执行权,但不会释放对象锁Thread.join():让主线程等待子线程执行结束之后再继续运行,用来保证线程的执行顺序a线程中调用b.join()则a需要等待b执行完Thread.yield():将running的线程变为就绪态
不会被分配cpu的执行时间,需要显式唤醒
六种状态:new、runnable、waiting、time_waiting、terminated
初始(new)
new Thread()但是还没有调用start()
Object.wait()Thread.join()LockSupport.part()
就绪(ready)
yield系统调度
Thread.sleep(long)Object.wait(long)Thread.join(long)LockSupport.parkNanos()LockSupport.parkUntil()
运行(running)
线程进入runnable状态,还可以分为运行状态和准备状态,这两种状态的切换受系统调度器控制
运行(runnable)
Object.notify()Object.notifyAll()LockSupport.unpart(t)达到等待时间
等待(waiting)
等待进入临界区
系统调度
阻塞(blocked)
Thread.start()
获取到锁
超时等待(time_waiting)
runnnable状态的线程是受调度器调度的
终止(terminated)
不会被分配cpu的执行时间,到达超时时间会自动唤醒
Object.notify()Object.notifyAll()LockSupport.unpark(t)
调用了start()方法之后进入runnable状态
0 条评论
下一页
为你推荐
查看更多