多处理与多线程

时间:2018-02-25 18:29:10

标签: multithreading multiprocessing

假设我有2个核心。然后我可以在每个正确的情况下运行两个进程。

线程是进程内部的。因此,在多线程中,如何在不同的核心上执行线程。

显然,如果一个线程在不同的核心上执行,那么我会在多线程中读取某个地方,然后由于上下文切换它会变慢。

但是我仍然不明白一个进程是在一个核心上运行而且所有线程都是特定于一个进程的,那么同一个进程的线程如何在另一个核心上执行。

请在这里帮助我。

1 个答案:

答案 0 :(得分:0)

进程是正在执行的计算机程序的实例。它包含程序代码及其当前活动。 资料来源:Wikipedia

线程是可由调度程序独立管理的最小程序指令序列。 资料来源:Wikipedia

简单地说,进程是一组虚拟资源(程序代码,数据,堆栈,堆),而线程是CPU核心正在执行的。这意味着每个进程至少有一个线程,但也可能有很多。

  

显然,如果一个线程在不同的核心上执行,那么我会在多线程中读取某个地方,然后由于上下文切换它会变慢。

上下文切换是存储进程或线程状态的过程。这允许多个进程共享单个CPU,并且是多任务操作系统的基本特征。 资料来源:Wikipedia

简单地说,当活动踏板比活动CPU更多时,会发生上下文切换。当我们只有一个进程和一个线程时,它也可能发生。