我了解到,在多核处理器中,每个核心包含2个硬件线程,例如在双核处理器中运行4个硬件线程。现在,如果我在Java中创建2个线程,这些线程将映射到2个硬件线程,还是这2个Java线程由特定核心的单个硬件线程执行?
我了解到,在多核处理器中,每个核心包含2个硬件线程,例如在双核处理器中运行4个硬件线程。现在,如果我在Java中创建2个线程,这些线程将映射到2个硬件线程,还是这2个Java线程由特定核心的单个硬件线程执行?
这取决于很多因素,但你所指的每个核心的2个硬件线程是英特尔超线程技术。该技术使CPU在内存中具有两个线程上下文,并同时执行,共享执行资源。
线程在哪里运行取决于操作系统的实现方式,并且大多由您的操作系统的线程调度程序算法解决。