线程的生命周期
2016-05-22 16:43
253 查看
Java线程生命周期:
一个线程的大致生命周期分为:创建-就绪-(阻塞)-运行-死亡。
1)创建:当一个thread被实例化出来后就完成了线程的创建;
2)就绪:当一个线程调用了start()方法的时候,该线程就处于就绪的状态了;
3)阻塞:如果一个就绪的线程,没有获得cpu的资源的时候,即处于阻塞状态,但我们通常调用wait()方法时候,可让该线程会处于等待状态‘
4)运行:即如果该线程获得了cpu资源的时候,也就是执行run的方法;
5)死亡:一个线程的run()方法执行完毕,或者未捕获一个未知异常的时候,该线程会死亡;’
关于线程的方法的几个疑惑问题:
sleep和wait区别:
a)sleep属于Thread的方法,而wait属于object对象的方法;
b)sleep方法并不释放锁,而wait方法会放弃锁的占用。
c)sleep在指定一定睡眠后时间后会自动唤起,而wait方法直接将该线程挂起,需要调用notify来唤起该线程;
一个线程的大致生命周期分为:创建-就绪-(阻塞)-运行-死亡。
1)创建:当一个thread被实例化出来后就完成了线程的创建;
2)就绪:当一个线程调用了start()方法的时候,该线程就处于就绪的状态了;
3)阻塞:如果一个就绪的线程,没有获得cpu的资源的时候,即处于阻塞状态,但我们通常调用wait()方法时候,可让该线程会处于等待状态‘
4)运行:即如果该线程获得了cpu资源的时候,也就是执行run的方法;
5)死亡:一个线程的run()方法执行完毕,或者未捕获一个未知异常的时候,该线程会死亡;’
关于线程的方法的几个疑惑问题:
sleep和wait区别:
a)sleep属于Thread的方法,而wait属于object对象的方法;
b)sleep方法并不释放锁,而wait方法会放弃锁的占用。
c)sleep在指定一定睡眠后时间后会自动唤起,而wait方法直接将该线程挂起,需要调用notify来唤起该线程;
相关文章推荐
- c语言优秀编程风格
- struts2中的ModelDriven运行机制
- 通过文本查找元素
- 数据库和数据仓库(笔记)
- case语法练习脚本之判断
- 快速乘法 Lucas定理
- POJ3368 Frequent values
- Android中侧拉菜单的使用
- java jvm-"=="和equal,堆和栈的区别和联系
- 一步步学spark之一scala循环表达式和for循环使用1.5
- Spring.Net学习笔记(八)-设置配置文件参数
- 学习进度第十二周
- linux的slect的脚本适用于交互
- MyBatis学习--逆向工程
- zabbix应用
- 简单的手风琴效果
- 第十三周阅读程序 纯虚函数
- LeetCode经典题目笔记(一)
- bootstrap固定响应式导航
- 2016"百度之星" - 初赛(Astar Round2B)1003 瞬间移动 组合数学+逆元