首页 > 编程语言 > 详细

线程,进程,协程

时间:2017-01-15 20:30:56      阅读:250      评论:0      收藏:0      [点我收藏+]

进程与线程

什么的进程:

程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。

程序和进程的区别在于:程序的指令的集合,它是进程运行的静态描述文本,进程是程序的一次执行活动,属于动态概念。

在多道编程中我们允许多个程序同时加载到内存中,在操作系统的调度下可以实现并发执行。就是这样的设计,大大的提高的CPU的利用率,进程的出现让每个用户感觉到自己独享CPU,因此,进程就是为了在cup上实现多道编程而提出的。

有了进程为什么还要线程?

进程有很多优点,它提供了多道编程,让我们感觉我们每个人都拥有自己的CPU和其他资源,可以提高计算机的利用率,,其实,仔细观察就会发现进程还是有很多缺陷的,主要体现在以下两点上:

1.进程只能在一个时间干一件事,不能同时干两件事或多件事。

2.进程在执行的过程中如果有阻塞,例如:等待输入,整个进程就会挂起,即使进程中有些工作不依赖与输入的数据,也无法执行。

例如:我们在使用QQ聊天,QQ做为一个独立进程,如果同一时间只能干一件事,那它是如何实现在同一时刻,即能监听键盘输入,又能监听其他人给你发的消息,同时还能把别人发的消息显示在屏幕上那?这个时候你可能会说,操作系统不是有分时吗?但是,分时是指在不同的进程间的分时,即操作系统处理一会你的QQ任务,又切换到word文档任务上去了,每个CPU时间片分给你的QQ程序时,你的QQ还是只能同时干一件事呀。

在自白一点,一个操作系统就像是一个工厂,工厂里面有很多生成车间,不同的车间生成不同的产品,每个车间就相当于一个进程,而且你的工厂很穷,供电不足,同一时间只能给一个车间供电,为了能让所有车间都能同时生产,你的工厂电工只能给不同的车间分时供电,但是论到你的QQ车间时,发现只有一个干活的工人,结果生产效率极低,为了解决这个问题,应该怎么办呢?。。。没错,就是你想到的,就是多加几个工人,让几个工人同时工作,这每个工人就是线程。

 

线程,进程,协程

原文:http://www.cnblogs.com/YingLai/p/6287727.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!