Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 硬件线程与软线程?_Multithreading_Hardware - Fatal编程技术网

Multithreading 硬件线程与软线程?

Multithreading 硬件线程与软线程?,multithreading,hardware,Multithreading,Hardware,我已经读到,在多核处理器中,每个核心包含2个硬件线程,例如在双核处理器中,4个硬件线程正在运行。现在,如果我在java中创建两个线程,那么这些线程将与两个硬件线程进行映射,还是这两个java线程由特定核心的单个硬件线程执行 这取决于很多因素,但是您所指的每个内核2个硬件线程是Intel超线程技术。这项技术使CPU在内存中有两个线程上下文,并同时执行,共享执行资源 哪些线程在哪里运行取决于操作系统的实现,主要由操作系统的线程调度程序算法解决。操作系统负责跨处理器分配线程;如果你的线程做了很多工作,

我已经读到,在多核处理器中,每个核心包含2个硬件线程,例如在双核处理器中,4个硬件线程正在运行。现在,如果我在java中创建两个线程,那么这些线程将与两个硬件线程进行映射,还是这两个java线程由特定核心的单个硬件线程执行

这取决于很多因素,但是您所指的每个内核2个硬件线程是Intel超线程技术。这项技术使CPU在内存中有两个线程上下文,并同时执行,共享执行资源


哪些线程在哪里运行取决于操作系统的实现,主要由操作系统的线程调度程序算法解决。

操作系统负责跨处理器分配线程;如果你的线程做了很多工作,操作系统可能会把它们放在不同的CPU上。类似的问题:但是这些软件线程、java线程和硬件线程是相互依赖的还是相互独立的?因为java threda是在一个名为jvm的进程中创建的……这种对英特尔超线程的描述并不准确。一些资源交替提供给一个或另一个线程,但执行单元是共享的,两个线程可能同时完成实际工作。当然,当一个线程暂停时,资源争用最少。