Multithreading 在两个内核上运行一个线程

Multithreading 在两个内核上运行一个线程,multithreading,multicore,Multithreading,Multicore,当前的体系结构是否支持在单个系统的多个内核上运行同一个单线程?在这种情况下会涉及到什么样的问题?据我所知不是这样 一个线程可以在另一个内核上停止,也可以在另一个内核上重新启动,但线程本身不能并行运行 如果线程中的代码可以并行运行,则应将其拆分为两个线程。这实际上会降低线程的运行速度。每次线程切换内核时,都需要传输前一个内核的所有状态。理想情况下,线程将停留在一个内核上 你认为在多核上运行会带来什么好处?不,我不认为存在这样的东西。它不存在,因为硬件不允许,但这是一个瓶颈,理论上可以通过Intel

当前的体系结构是否支持在单个系统的多个内核上运行同一个单线程?在这种情况下会涉及到什么样的问题?

据我所知不是这样

一个线程可以在另一个内核上停止,也可以在另一个内核上重新启动,但线程本身不能并行运行


如果线程中的代码可以并行运行,则应将其拆分为两个线程。

这实际上会降低线程的运行速度。每次线程切换内核时,都需要传输前一个内核的所有状态。理想情况下,线程将停留在一个内核上


你认为在多核上运行会带来什么好处?

不,我不认为存在这样的东西。

它不存在,因为硬件不允许,但这是一个瓶颈,理论上可以通过Intel的一些独创性来消除。

你基本上是在问,顺序指令是否自动并行化?有许多方法可以实现并行执行,根据工作负载的不同,有不同的效率级别。这也可能发生在不同的级别,在µarch(与您的问题相关)、ISA、操作系统等

如果我能正确假设,并尝试回答我相信你的问题。
这在理论上是可能的,但尚未在商用硬件上实现。因此有许多更高级的并行化方法。

根据定义,线程是“可以与其他线程并行执行的指令序列”。以并行模式运行单个线程是很危险的,因为它是按顺序运行的。线程操作的一部分,如IO,可能会在运行它的一个内核上导致暂停,可以在另一个内核上并行执行。这将有助于利用多核系统的性能。