您的位置:首页 > 其它

进程和线程的区别、多进程与多线程、并行与并发、多任务

2013-11-28 12:53 579 查看
进程和线程的区别:

1、一个程序至少有一个进程,一个进程至少有一个线程;

2、资源(内存、寄存器等)分配给进程,进程在执行过程拥有独立的内存空间,而同一进程下的所有线程共享所有资源,从而提高程序的运行效率;

3、处理机分配给线程,即处理机真正运行的是线程;

4、线程在执行过程中,需要协作同步。不同线程间的要利用通信协议来实现同步。

进程是操作系统在运行一个程序时被抽象出来的,线程是从一个进程中分割出来的,cpu在处理线程时是时间片轮转方式进行的。

进程是操作系统分配程序执行资源的单位,而进程是进程的一个实体,是CPU调度和分配的单位。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

操作系统在同一时间,执行两个或两个以上的程序,即允许两个或两个以上的进程(多进程)处于运行状态,就是多任务。例如我们可以同时聊QQ、写bolg、听音乐等等就是多任务

如果一台计算机有多个CPU,情况就不同了,如果进程数小于CPU数,则不同的进程可以分配给不同的CPU来运行,这样,多个进程就是真正同时运行的,这便是并行。但如果进程数大于CPU数,则仍然需要使用并发技术。

在Windows中,进行CPU分配是以线程为单位的,一个进程可能由多个线程组成,这时情况更加复杂,但简单地说,有如下关系:

总线程数<= CPU数量:并行运行

总线程数> CPU数量:并发运行


并行运行的效率显然高于并发运行,所以在多CPU的计算机中,多任务的效率比较高。但是,如果在多CPU计算机中只运行一个进程(线程),就不能发挥多CPU的优势。

多任务操作系统(如Windows)的基本原理是:操作系统将CPU的时间片分配给多个线程,每个线程在操作系统指定的时间片内完成(注意,这里的多个线程是分属于不同进程的)。操作系统不断的从一个线程的执行切换到另一个线程的执行,如此往复,宏观上看来,就好像是多个线程在一起执行。由于这多个线程分属于不同的进程,因此在我们看来,就好像是多个进程在同时执行,这样就实现了多任务。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐