概念介绍

首先是百度到的一段概念:

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因为他们都是基本调度单位

总结

  1. 线程是进程的一部分
  2. 一个进程可以包含多个线程(至少一个)
  3. 进程是拥有资源(I/O设备、已打开的文件等)的基本单位
  4. 线程是调度和分配的基本单位(线程只拥有少量的必须的保证运行的资源)
  5. 线程的创建、撤销、切换花费远低于进程
  6. 多线程进程可以使用多个处理核心处理不同的线程
  7. CPU的线程是物理结构,OS的线程是逻辑结构

    参考链接