假设我有两个核心。然后,我可以运行两个进程,每一个正确。
线程是processes.So内部的多线程,如何在不同的内核上执行线程。
显然,我在多线程中读到过,如果一个线程在一个不同的内核上执行,那么由于上下文切换,它会慢一些。
但是,我仍然不明白,如果一个进程运行在一个核心上,并且所有线程都是特定于一个进程的,那么一个相同进程的线程如何在一个不同的核心上执行。
请帮帮我。
发布于 2018-02-26 11:18:39
Process是正在执行的计算机程序的实例。它包含程序代码及其当前活动。来源:维基百科
线程是可由调度程序独立管理的最小的程序指令序列。来源:维基百科
简单地说,进程是一组虚拟资源(程序代码、数据、堆栈、堆),而线程是由CPU核心执行的。这意味着每个进程至少有一个线程,但也可能有很多线程。
显然,我在多线程中读到过,如果一个线程在一个不同的内核上执行,那么由于上下文切换,它会慢一些。
上下文切换是存储进程或线程状态的过程。这允许多个进程共享一个CPU,并且是多任务操作系统的一个基本特性。来源:维基百科
简单地说,上下文切换发生在比活动CPU更活跃的情况下。当我们只有一个进程和一个线程时,这种情况也可能发生。
https://stackoverflow.com/questions/48976949
复制相似问题