线程状态图
2018-07-19 16:58:43 0 举报
线程状态准换图
作者其他创作
大纲/内容
时间片用完;t.yield()
锁池队列
新建状态NEW
t.sleep();t2.join();等待用户输入
Thread t = new Thread();新建一个对象引用,但没有启动线程
OS选中;线程获得CPU时间片
在一个死去的线程上调用start()方法,会抛出java.lang.IllegalThreadStateException异常
t.start()
终止状态TERMINATED
o.notify();o.notifyAll();其他线程调用;
线程调用带有正的等待时间参数的下列各方法时后进入超时等待状态:- Object中的wait()- Thread中的join()- Thread中的sleep()- LockSupport中的parkNanos()- LockSupport中的parkUntil()
超时等待状态TIMED_WAITING
拿到对象锁
t.sleep结束;t2终止;用户操作完毕;
线程执行完毕,或run()方法全部执行结束后,线程进入终止状态
等待队列
运行状态Running
阻塞状态BLOCKED
1. 锁池里面放的都是想争夺对象锁的线程;2. 当一个线程a被另外一个线程b唤醒时,a线程进入锁池状态,去争夺对象锁;3. 锁池是在同步的环境下才有的概念,一个对象对应一个锁池。
可运行状态RUNNABLE
等待状态WAITING
正在等待同步锁来进入一个同步代码块中来使用CPU资源,处于阻塞状态
线程调用方法后进入等待状态:wait()join()LockSupport类中的park()
0 条评论
下一页