线程的生命周期
来源:互联网 发布:数据挖掘工具 编辑:程序博客网 时间:2024/05/22 03:29
线程生命周期
可以说这是我对线程的初步理解与体会,后续一定会有更加深入的理解。
一个线程它必然要经过新建(new)、就绪(runnable)、运行(running)、阻塞(Blocked)和死亡(dead)这五种状态。
线程在使用new关键字之后,该线程就处于新建状态,当调用了start()方法之后,该线程就处于就绪状态,这个状态的线程并没有运行,只是表示线程可以运行了,而何时运行还是取决于JVM里的线程调度器。如果你想让线程在创建之后就马上运行,可以在start()之后调用Thread.sleep(1)让主线程睡1毫秒,这1毫秒内CPU不会空闲,它会去执行另一个处于就绪状态的线程,这样就可以让子线程立刻执行了。
运行和阻塞 在小型设备中线程所占用的资源是只有主动释放,不然就会一直占用,当发生下面情况时线程会阻塞
1、调用sleep()方法------------------------------------给sleep指定时间(解除阻塞的方法)
2、调用阻塞式IO方法-------------------------------------调用的阻塞式IO方法已经返回
3、获得同步监视器,但该同步监视器正被其他线程所持有--------------------------------------线程成功获得同步监视器
4、等待通知(notify())=-------------------------------------其他线程给个通知
5、调用了线程的suspend()方法将该线程挂起,但是容易使线程死锁---------------------------------------resume()恢复被挂起的线程。
线程死亡
1、run()或者call()方法执行完成,线程正常结束
2、线程抛出异常或者错误(error)
3、直接调用了该线程的stop()方法
不要试图对死亡的线程用start方法这是错误的。
未完待续~~~~
- 线程--线程的生命周期
- 线程的生命周期---线程死亡
- 线程的生命周期
- 线程的生命周期
- 线程的生命周期
- 线程的生命周期、
- 线程的生命周期
- 线程的生命周期
- JAVA线程的生命周期
- 线程的生命周期
- 线程的生命周期、
- 线程的生命周期
- Java线程的生命周期
- 线程的生命周期
- 线程的生命周期
- 线程的生命周期
- 线程的生命周期
- 线程的生命周期
- [easyui]datagrid鼠标移动显示单元格内容
- 从作用域链谈闭包
- 算法设计题3.19-栈和队列-第3章-《数据结构习题集》-严蔚敏吴伟民版
- 深入理解java虚拟机之JVM调优配置
- document.ready和onload的区别
- 线程的生命周期
- iOS个人整理07-UITextView与键盘回收与键盘遮挡输入框
- java newFixedThreadPool 报错
- CodeForces 413C Jeopardy!
- 查看Oracle表空间大小
- DPM目标检测-1
- Fragment系列之Transactions.commit和Activity的状态
- 在论坛中出现的比较难的sql问题:39(动态行转列 动态日期列问题)
- android:contentInsetStart android:contentInsetEnd contentInsetStart paddingstart paddingEnd