线程的基本概念、现成的基本状态以及状态之间的基本关系
2016-06-25 22:26
316 查看
一个程序中可以有多条执行线索同时执行,一个线程就是程序中的一条执行线索,每个线程上都关联有要执行的代码,即可以有多段程序代码同时运行,每个程序至少都有一个线程,即main方法执行的那个线程。如果只是一个cpu,它怎么能够同时执行多段程序呢?这是从宏观上来看的,cpu一会执行a线索,一会执行b线索,切换时间很快,给人的感觉是a,b在同时执行,好比大家在同一个办公室上网,只有一条链接到外部网线,其实,这条网线一会为a传数据,一会为b传数据,由于切换时间很短暂,所以,大家感觉都在同时上网。
状态:就绪,运行,synchronize阻塞,wait和sleep挂起,结束。wait必须在synchronized内部调用。
调用线程的start方法后线程进入就绪状态,线程调度系统将就绪状态的线程转为运行状态,遇到synchronized语句时,由运行状态转为阻塞,当synchronized获得锁后,由阻塞转为运行,在这种情况可以调用wait方法转为挂起状态,当线程关联的代码执行完后,线程变为结束状态。
状态:就绪,运行,synchronize阻塞,wait和sleep挂起,结束。wait必须在synchronized内部调用。
调用线程的start方法后线程进入就绪状态,线程调度系统将就绪状态的线程转为运行状态,遇到synchronized语句时,由运行状态转为阻塞,当synchronized获得锁后,由阻塞转为运行,在这种情况可以调用wait方法转为挂起状态,当线程关联的代码执行完后,线程变为结束状态。
相关文章推荐
- 小白...
- Cookie/Session机制详解
- Recommender System
- ARM体系结构(二)
- 216. Combination Sum III
- Android 自定义图片选择框
- PowerDesigner(七)-数据库的生成和修改
- 朴素贝叶斯算法
- pch文件
- 215. Kth Largest Element in an Array
- top 命令
- c语言学习笔记37之字符串
- QT调用打印机的实现
- ffmpeg播放器快进快退(七)
- 中介者模式(Mediator)
- Android基础知识点的整理2
- spring如何处理表单数据
- Node.js+Express商业开发中的安全性考虑
- 打造自己的Android-Universal-Image-Loader
- linux下编写一个仿shell