概念介绍
首先是百度到的一段概念:
1、进程是程序的一次执行。 2、进程是资源分配的基本单位(调度单位)。 3、一个进程可以包括多个线程。
4、在单CPU计算机中,有一个资源是无法被多个程序并行使用的:CPU。
5、操作系统调度器:拆分CPU为一段段时间的运行片,轮流分配给不同的程序。
6、操作系统内存管理模块:管理物理内存、虚拟内存相关的事务。
然后是其总结:
总结:
1、单CPU中进程只能是并发,多CPU计算机中进程可以并行。
2、单CPU单核中线程只能并发,单CPU多核中线程可以并行。
3、无论是并发还是并行,使用者来看,看到的是多进程,多线程。
一个进程,程序的一次执行,而该次执行包含了多个线程,CPU执行任务(进程)时,只能看到进程所包含的线程,CPU也只能调度他看到的这些线程,依据其核心数的不同,单核CPU只能轮流执行这些线程,而多核CPU则可以同时执行几个线程(取决于核心数)。
线程的来由
在计算机发展早期,OS调度的基本单位是进程,而一个进程要能够执行,就需要为其分配所需的各种上下文环境(I/O设备、已打开的文件、信号量等)。
要使程序并发执行,OS就必须在创建进程时分配上下文资源(程序运行环境),撤销进程时回收上下文资源,进程切换时又需要保留当前进程环境和设置新选中进程的CPU环境,这又需要花费不少时间。
为了解决这个问题,计算机科学家们将进程的调度和分派、资源的拥有两个属性分开来了,拥有资源的基本单位即为进程,调度和分派的基本单位即线程。
OS中的线程和CPU中线程
CPU概念上的线程(即6C12T中的12T)和操作系统(OS)中的线程不是一个概念,OS中线程能有成百上千个,而CPU中的线程就只有那么些,是稀缺资源。两者都叫Thread因为他们都是基本调度单位。
