进程和线程的区别、多进程与多线程、并行与并发、多任务
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的时间片分配给多个线程,每个线程在操作系统指定的时间片内完成(注意,这里的多个线程是分属于不同进程的)。操作系统不断的从一个线程的执行切换到另一个线程的执行,如此往复,宏观上看来,就好像是多个线程在一起执行。由于这多个线程分属于不同的进程,因此在我们看来,就好像是多个进程在同时执行,这样就实现了多任务。
1、一个程序至少有一个进程,一个进程至少有一个线程;
2、资源(内存、寄存器等)分配给进程,进程在执行过程拥有独立的内存空间,而同一进程下的所有线程共享所有资源,从而提高程序的运行效率;
3、处理机分配给线程,即处理机真正运行的是线程;
4、线程在执行过程中,需要协作同步。不同线程间的要利用通信协议来实现同步。
进程是操作系统在运行一个程序时被抽象出来的,线程是从一个进程中分割出来的,cpu在处理线程时是时间片轮转方式进行的。
进程是操作系统分配程序执行资源的单位,而进程是进程的一个实体,是CPU调度和分配的单位。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
操作系统在同一时间,执行两个或两个以上的程序,即允许两个或两个以上的进程(多进程)处于运行状态,就是多任务。例如我们可以同时聊QQ、写bolg、听音乐等等就是多任务。
如果一台计算机有多个CPU,情况就不同了,如果进程数小于CPU数,则不同的进程可以分配给不同的CPU来运行,这样,多个进程就是真正同时运行的,这便是并行。但如果进程数大于CPU数,则仍然需要使用并发技术。
在Windows中,进行CPU分配是以线程为单位的,一个进程可能由多个线程组成,这时情况更加复杂,但简单地说,有如下关系:
总线程数<= CPU数量:并行运行
总线程数> CPU数量:并发运行
并行运行的效率显然高于并发运行,所以在多CPU的计算机中,多任务的效率比较高。但是,如果在多CPU计算机中只运行一个进程(线程),就不能发挥多CPU的优势。
多任务操作系统(如Windows)的基本原理是:操作系统将CPU的时间片分配给多个线程,每个线程在操作系统指定的时间片内完成(注意,这里的多个线程是分属于不同进程的)。操作系统不断的从一个线程的执行切换到另一个线程的执行,如此往复,宏观上看来,就好像是多个线程在一起执行。由于这多个线程分属于不同的进程,因此在我们看来,就好像是多个进程在同时执行,这样就实现了多任务。
相关文章推荐
- 线程与进程,多线程,多进程,线程并发,线程并行
- 线程,进程。多进程,多线程。并发,并行的区别
- Java 多线程编程之一 进程与线程,并发和并行的区别:吃馒头的比喻
- 基础知识:线程,进程。多进程,多线程。并发,并行的区别
- Java 多线程编程之一 进程与线程,并发和并行的区别:吃馒头的比喻
- Java 多线程编程之一 进程与线程,并发和并行的区别
- iOS中多线程知识总结:进程、线程、GCD、串行队列、并行队列、全局队列、主线程队列、同步任务、异步任务等(有示例代码)
- iOS中多线程知识总结:进程、线程、GCD、串行队列、并行队列、全局队列、主线程队列、同步任务、异步任务等
- 进程和线程的区别?同步和异步的区别?并行和并发的区别?
- 进程、程序、线程、多线程、并发、并行详解
- iOS中多线程知识总结:进程、线程、GCD、串行队列、并行队列、全局队列、主线程队列、同步任务、异步任务等
- java并发-多线程之线程和进程的区别(1)
- Java并发01:进程、线程、并发、并行、多线程、线程安全、死锁、并发优缺点
- 线程和进程的区别,并发与并行的区别
- 并发、并行、异步、同步、单进程、多进程、多线程...
- 线程 线程与进程的区别 并行和并发的区别 线程安全sychronized 等待唤醒机制
- 线程与进程的区别以及对多线程并发的理解
- Java多线程中的进程,线程,并行,并发
- 并发和并行的区别,进程和线程的区别,如何创建线程和线程的四种状态,什么是线程计时器
- 进程,线程,协程,并行与并发区别, 上下文