Multithreading 在多核系统上,哪个是有效的?一个进程有多个线程还是多个进程有一个线程?

Multithreading 在多核系统上,哪个是有效的?一个进程有多个线程还是多个进程有一个线程?,multithreading,operating-system,multiple-processes,Multithreading,Operating System,Multiple Processes,假设有一个系统有8个内核,每个内核有1个线程和32 GB的RAM。我想在案例1->4个线程的单个进程中运行(线程是独立的,因此不需要同步),案例2->4个进程的每个进程都有一个线程。撇开内存消耗和创建它们所花费的时间不谈,在Linux系统上,上述情况下的执行时间会有显著差异吗?为什么? 大多数操作系统书籍都涉及单核和单线程系统 切换线程比切换进程便宜,因为切换线程只需要更改堆栈。切换过程可能需要使TLB无效并缓慢加载新页面映射。相关:True。但是,由于我们在一个多核系统中,我们可能不需要对进程

假设有一个系统有8个内核,每个内核有1个线程和32 GB的RAM。我想在案例1->4个线程的单个进程中运行(线程是独立的,因此不需要同步),案例2->4个进程的每个进程都有一个线程。撇开内存消耗和创建它们所花费的时间不谈,在Linux系统上,上述情况下的执行时间会有显著差异吗?为什么?
大多数操作系统书籍都涉及单核和单线程系统

切换线程比切换进程便宜,因为切换线程只需要更改堆栈。切换过程可能需要使TLB无效并缓慢加载新页面映射。

相关:True。但是,由于我们在一个多核系统中,我们可能不需要对进程进行上下文切换,因为核心数量相当高。我们可以假设系统上运行的进程不多。