java.线程的五个状态与之间的切换
2016-04-15 21:48
344 查看
在网上搜了搜关于线程状态的资料,发现大多数资料上的术语与名词都比较简洁而专业,新手不一定能够理解。所以就斗胆根据自己的理解,画了个小图。写一篇通俗易懂一点的。
⑴.线程分为被创建、运行、临时状态、冻结、消亡五种状态。
⑵被创建后需要调用start方法才能创建线程并运行
⑶临时状态,即具有运行资格,但没有运行权的线程所处状态。当某一时间点,线程没有获得CPU的执行权,就是处于这个状态。
⑷冻结,即 放弃执行资格 的线程所处状态,目的是让线程暂时停止,让别的线程先运行。小生知道的有两种方法可以让线程进入冻结状态。
①调用sleep(time)方法,使线程进入冻结状态中的睡眠状态,且在time即时间到了之后,自动解除冻结状态。
②调用wait()方法,使线程进入冻结状态中的等待状态,且只有当用notify()等函数将其“唤醒”之后,才解除冻结。
⑸解除冻结状态之后,线程不一定直接进入运行状态,因为此时不一定能获取到CPU的执行权。可能将进入临时状态。
⑹消亡,即线程结束,当调用stop()方法或者run方法运行结束后,线程进入消亡状态。
⑴.线程分为被创建、运行、临时状态、冻结、消亡五种状态。
⑵被创建后需要调用start方法才能创建线程并运行
⑶临时状态,即具有运行资格,但没有运行权的线程所处状态。当某一时间点,线程没有获得CPU的执行权,就是处于这个状态。
⑷冻结,即 放弃执行资格 的线程所处状态,目的是让线程暂时停止,让别的线程先运行。小生知道的有两种方法可以让线程进入冻结状态。
①调用sleep(time)方法,使线程进入冻结状态中的睡眠状态,且在time即时间到了之后,自动解除冻结状态。
②调用wait()方法,使线程进入冻结状态中的等待状态,且只有当用notify()等函数将其“唤醒”之后,才解除冻结。
⑸解除冻结状态之后,线程不一定直接进入运行状态,因为此时不一定能获取到CPU的执行权。可能将进入临时状态。
⑹消亡,即线程结束,当调用stop()方法或者run方法运行结束后,线程进入消亡状态。
相关文章推荐
- 深入剖析Java中的装箱和拆箱
- java.util.ServiceLoader使用
- java.util.ServiceLoader使用
- Java作业5
- 使用junit4测试Spring
- java import、package作用与用法
- Java设计模式--------建造者模式
- JavaEE包括13中核心技术
- java中的集合:collection和各个map
- eclipse maven 项目导出为 jar 包
- JDK5新特性之增强for
- Spring项目的建立-移植流程(非入门教程)
- Spring项目的建立-移植流程(非入门教程)
- 20145216史婧瑶《Java程序设计》第7周学习总结
- 20145216史婧瑶《Java程序设计》第7周学习总结
- 使用 eclipse+egit 将项目提交至 github ,本地的git仓库:eclipse工作项目目录
- java入门
- Java 内存分配全面浅析 | Java基础
- JAVA 泛型
- java中静态方法中调用非静态方法