多线程,多进程,并发,并行,cpu

基本

首先,要先了解几个概念:

1、进程是程序的一次执行。

2、进程是资源分配的基本单位(调度单位)。

3、一个进程可以包括多个线程。

4、在单CPU计算机中,有一个资源是无法被多个程序并行使用的:CPU。

5、操作系统调度器:拆分CPU为一段段时间的运行片,轮流分配给不同的程序。

6、操作系统内存管理模块:管理物理内存、虚拟内存相关的事务。   

由于CPU同时刻只能执行一个进程,如果我们不加以控制的话,一个进程可能使用CPU直到运行结束,于是出现了操作系统调度器,而进程也成为了调度单位。 进程的运行不仅仅需要CPU,还需要很多其他资源,如内存啊,显卡啊,GPS啊,磁盘啊等等,统称为程序的执行环境,也就是程序上下文。

在这里就出现了并发的概念,调度器切换CPU给不同进程使用的速度非常快,于是在使用者看来程序是在同时运行,这就是并发,而实际上CPU在同一时刻只在运行一个进程。

CPU进程无法同时刻共享,但是出现一定要共享CPU的需求呢?

此时线程的概念就出现了。线程被包含在进程当中,进程的不同线程间共享CPU和程序上下文。(共享进程分配到的资源)

单CPU进行进程调度的时候, 需要读取上下文+执行程序+保存上下文,即进程切换。如果这个CPU是单核的话,那么在进程中的不同线程为了使用CPU核心,则会进行线程切换,但是由于共享了程序执行环境,这个线程切换比进程切换开销少了很多。在这里依然是并发,唯一核心同时刻只能执行一个线程。

如果这个CPU是多核的话,那么进程中的不同线程可以使用不同核心,真正的并行出现了。

线程是CPU调度和分配的基本单位,进程是操作系统进行资源分配(包括cpu、内存、磁盘IO等)的最小单位。

CPU只能看到线程

另外在有的操作系统里,进程不是调度单位,线程是最基本的调度单位,调度器只调度线程,不调度进程,如VxWorks。

总结:

1、单CPU中进程只能是并发,多CPU计算机中进程可以并行。

2、单CPU单核中线程只能并发,单CPU多核中线程可以并行。

3、无论是并发还是并行,使用者来看,看到的是多进程,多线程。

CPU的几核几线程是什么意思?

“8核16线程”是指一款处理器的核心数和线程数配置。在这种情况下,该处理器有8个物理核心和16个逻辑线程。

具体解释如下:

核心数:指处理器内部的物理核心数量。每个物理核心都可以独立地执行指令和运算操作。
线程数:指处理器能够同时处理的线程数量。

逻辑线程是通过超线程(Hyper-Threading)技术实现的。在超线程中,每个物理核心被模拟成两个逻辑核心,使得处理器可以同时执行两个线程。

因此,对于一个有8核16线程的处理器,它具有8个物理核心和每个核心能够模拟出2个逻辑核心,总共能够同时处理16个线程。这样的配置可以提高处理器的并发性和多任务处理能力,增加系统的整体性能表现。