gpt4 book ai didi

multithreading - 软件线程与硬件线程

转载 作者:行者123 更新时间:2023-12-03 05:53:38 26 4
gpt4 key购买 nike

软件线程、硬件线程和java线程有什么区别?

软件线程、java线程和硬件线程是独立的还是相互依赖的?我问这个问题是因为,我知道 Java 线程是在 jvm (java.exe) 的进程内创建的。

这些不同的进程真的是在不同的硬件线程上执行吗?

最佳答案

“硬件线程”是物理 CPU 或内核。因此,4 核 CPU 可以真正同时支持 4 个硬件线程 - CPU 确实在同时做 4 件事。

一个硬件线程可以运行多个软件线程。在现代操作系统中,这通常是通过时间切片来完成的 - 在操作系统安排另一个线程在该 CPU 上运行之前,每个线程都有几毫秒的时间来执行。由于操作系统在线程之间快速来回切换,看起来就好像一个 CPU 同时执行多件事,但实际上,一个核心仍在运行只有一个硬件线程,在多个软件线程之间切换。

现代 JVM 将 java 线程直接映射到操作系统提供的 native 线程,因此与 native 线程相比,java 线程没有引入固有的开销。对于硬件线程,如果有足够的内核,操作系统会尝试将线程映射到内核。因此,如果您有一个启动 4 个线程的 Java 程序,并且有 4 个或更多核心,那么如果核心空闲,那么您的 4 个线程很有可能在 4 个单独的核心上真正并行运行。

关于multithreading - 软件线程与硬件线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5593328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com