线程与进程的区别,举个例子让你快速理解
2015-06-30 20:03
302 查看
参考资料:
http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html
进程是资源分配和管理的基本单位,进程中包含的一个或多个执行单元叫做线程。
如果是多核CPU,就相当于这个工厂的电力可以一次供应多个车间
这时车间就相当于进程
一个车间里,可以有很多个机器人,他们一起完成这个车间的任务
机器人就相当于线程
一个车间可以有多个机器人,一个进程可以有多个线程
但是机器人需要供电才能运作,单核CPU就相当于一次只能给一个机器人供电
所以在实际生产中,工厂一次只能给一个车间的一个机器人供电,下一次给另外一个机器人供电(可以是相同车间或者不同车间),就这样交替供电来完成工厂中所有的任务
在系统中也一样,单核CPU一次只能给一个进程的一个线程调度,然后不同的线程交替执行,来完成系统中所有的任务
车间的空间是这个车间的机器人们共享的,相应地,一个进程中的内存空间可以给这个进程中的所有线程共享
但不同车间的空间不能共享,所以不同进程不能共享内存空间
http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html
进程是资源分配和管理的基本单位,进程中包含的一个或多个执行单元叫做线程。
一个程序至少有一个进程,一个进程至少有一个线程
理解线程与进程
如果把CPU比喻成工厂,单核CPU就是指工厂的电力有限,一次只能给一个车间供应电力,当CPU给某个车间供电的时候,其他车间都要暂时停工。如果是多核CPU,就相当于这个工厂的电力可以一次供应多个车间
这时车间就相当于进程
一个车间里,可以有很多个机器人,他们一起完成这个车间的任务
机器人就相当于线程
一个车间可以有多个机器人,一个进程可以有多个线程
但是机器人需要供电才能运作,单核CPU就相当于一次只能给一个机器人供电
所以在实际生产中,工厂一次只能给一个车间的一个机器人供电,下一次给另外一个机器人供电(可以是相同车间或者不同车间),就这样交替供电来完成工厂中所有的任务
在系统中也一样,单核CPU一次只能给一个进程的一个线程调度,然后不同的线程交替执行,来完成系统中所有的任务
车间的空间是这个车间的机器人们共享的,相应地,一个进程中的内存空间可以给这个进程中的所有线程共享
但不同车间的空间不能共享,所以不同进程不能共享内存空间
相关文章推荐
- uva 531 妥协 Compromise
- Hibernate映射之七—集合
- Maven实战(七,八)——常用Maven插件介绍
- va_list
- Java Swing皮肤包的使用方法
- Hadoop常见重要命令行操作及命令作用
- JS漂浮广告代码
- 在word中插入显示在同一行的两张图片(且各自带有题注)
- linux open()函数各参数说明
- Maven实战(六)——Gradle,构建工具的未来?
- Java集合详解
- java 中缀转后缀(逆波兰)
- 页面统计程序源代码
- 曼德勒中文离线地图App上线
- UI基础:UIView(window,frame,UIColor,CGPoint,alpha,CGRect等)
- UI基础:UIView(window,frame,UIColor,CGPoint,alpha,CGRect等) 分类: iOS学习-UI 2015-06-30 20:01 119人阅读 评论(0) 收藏
- [转载]应用 Valgrind 发现 Linux 程序的内存问题
- 面试题8:旋转数组的最小数字
- TCP协议中的三次握手和四次挥手
- poj3693——后缀数组+RMQ