======线程状态======
来源:互联网 发布:网络安全法考试答案 编辑:程序博客网 时间:2024/05/06 23:58
一. 线程状态类型
1. 新建状态(New):新创建了一个线程对象。
2. 就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。
3. 运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。
4. 阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态。阻塞的情况分三种:
(一)、等待阻塞:运行的线程执行wait()方法,JVM会把该线程放入等待池中。
(二)、同步阻塞:运行的线程在获取对象的同步锁时,若该同步锁被别的线程占用,则JVM会把该线程放入锁池中。
(三)、其他阻塞:运行的线程执行sleep()或join()方法,或者发出了I/O请求时,JVM会把该线程置为阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。
5. 死亡状态(Dead):线程执行完了或者因异常退出了run()方法,该线程结束生命周期。
二. 线程状态图
1. 新建状态(New):新创建了一个线程对象。
2. 就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。
3. 运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。
4. 阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态。阻塞的情况分三种:
(一)、等待阻塞:运行的线程执行wait()方法,JVM会把该线程放入等待池中。
(二)、同步阻塞:运行的线程在获取对象的同步锁时,若该同步锁被别的线程占用,则JVM会把该线程放入锁池中。
(三)、其他阻塞:运行的线程执行sleep()或join()方法,或者发出了I/O请求时,JVM会把该线程置为阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。
5. 死亡状态(Dead):线程执行完了或者因异常退出了run()方法,该线程结束生命周期。
二. 线程状态图
0 0
- ======线程状态======
- 程序员的状态==代码的状态
- android 保存 Activity 状态 ==> onSaveInstanceState()
- 状态模式=====java
- 线程特有数据==线程内静态变量
- spring bean scope="prototype" 有状态bean 无状态bean
- 翻译==Android 进程和线程
- hdu1074 Doing Homework(状态压缩DP Y=Y)
- 设置ListView的选中状态:android:state_activated="true"
- Android USB状态监控(解决scheme="file")
- java线程:中止(interrupt)!=stop
- 标签+线程休眠 = 打地鼠
- 线程加锁 lock = threading.Lock()
- 请教=====线程问题??????
- Linux内核线程之父pid=2的kthreadd线程
- Linux c ==线程之间的互斥(7)
- hdu4901 枚举状态(找集合对S(xor) ==T(and))
- 关于readystate==1状态下的ajax效果不能显示的问题的解决
- 点击UITableView的cell展开收缩
- Leetcode 1 Two Sum
- 搜狗商业平台Java技术实践
- BZOJ 2141 排队 树套树
- Gnome桌面安装 - centos
- ======线程状态======
- 从IRP说起
- java 获取任意类下面的所有方法,任意类下面所有的get方法和get方法的值,动态调用方法
- Bash Shell内建命令和保留字
- IO 多路复用之select(理解)
- [自学Android之旅] 简单的电话拨号器
- 多线程:线程安全
- 1018. Public Bike Management (30)
- SharePoint 2013 开发——APP安全模型