线程和进程,并发和并行
一:进程与线程
1.什么是进程?
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。
由于现在几乎大部分都是面向线程设计,总结起来就是进程是操作系统进行资源分配和调度的基本单位,是线程的容器,程序的实体。
2什么是线程?
线程是进程的实体,是程序执行流的最小单元。可以理解为线程在进程内部。
3线程与进程的关系
由于线程是在进程里面的,所以进程里面可以有多个线程,而线程里面不可能有进程。对于资源的关系:进程分配和调度资源,而线程分享利用进程的资源。
二:并发与并行
1什么是并发?
并发性(concurrence) )是指两个或两个以上的事件或活动在同一时间间隔内发生。注意(在同一时间间隔并不代表同一时刻),并发的实质是一个物理CPU(也可以多个物理CPU) 在若干道程序(或线程)之间多路复用,并发性是对有限物理资源强制行使多用户共享以提高效率。我们用的操作系统就是一个并发系统。
并发的发生必定多个线程不在同一时刻进行并且只有一个CPU资源,他们只是在相互抢夺资源,只不过速度特别快我们感受不到而已。因此多线程(进程)的并发表面上好像是一起进行的,但是他们的本质(也就是专业人士所说的微观上)一定不是同时进行的。多个程序在同时执行时就像CPU只给了一个名额,你抢到了别人就得等,抢不到你就得等别人。
2什么是并行?
并行就是多个CPU同一时刻给资源,有多个人可以抢到CPU,但是每一个CPU在某一具体时刻只能被一个人用。他与并发是不同的,并行的发生必定在同一时刻。
3并发与并行的关系?
并发和并行都是为了提高对CPU的利用率,提高CPU的效率,现在的CUP都采用多核就是为了实现并行,并行解决了总是利用一个CPU时热量过高,CPU负担过重的问题。
三:多线程在执行的时候到底是并发还是并行?
这个是由操作系统决定的,不是我们所能决定的。
参考资料:
《操作系统原理》
小编不专业,有错误请第一时间留言,谢谢!欢迎转载。