Multithreading 在CPU中运行多线程

Multithreading 在CPU中运行多线程,multithreading,cpu,cpu-architecture,Multithreading,Cpu,Cpu Architecture,我们所知道的是,JVM在一台基于CPU的机器上调度用户线程。为什么一台CP不能并行运行多个进程/线程,这一能力的限制是什么 而且JVM就像运行在任何机器上的另一个软件,在这段时间内,可能会有数千个其他程序在等待CPU周期,JVM线程如何从CPU获取调度,为任何机器中的任何进程分配周期的速度/可能性的参数是什么。这不是Java的问题,但这是一个cpu架构问题 有些CPU在每个内核上并行运行多个线程。看看英特尔和超线程技术。。具有8个线程的4核机器与您的建议正好相反。传统的单核处理器一次只能处理一条

我们所知道的是,JVM在一台基于CPU的机器上调度用户线程。为什么一台CP不能并行运行多个进程/线程,这一能力的限制是什么


而且JVM就像运行在任何机器上的另一个软件,在这段时间内,可能会有数千个其他程序在等待CPU周期,JVM线程如何从CPU获取调度,为任何机器中的任何进程分配周期的速度/可能性的参数是什么。

这不是Java的问题,但这是一个cpu架构问题


有些CPU在每个内核上并行运行多个线程。看看英特尔和超线程技术。。具有8个线程的4核机器与您的建议正好相反。

传统的单核处理器一次只能处理一条指令,这意味着它们在任何时间点只能在单个线程中工作

多线程支持是通过在cpu上给线程“回合”来综合实现的,这样它们看起来是并发运行的

多核处理器可以在任何一个时间点处理每个CPU的指令


这个问题更多地与CPU硬件设计有关,而不是编程,尤其不是单一语言ie java,因为限制是全面的。

好吧,单个内核一次只能执行一条指令。@aaa carp:一次一条“指令流”更合适。大多数现代处理器可以提前执行多条流水线指令。