gpt4 book ai didi

java - java中多线程是如何工作的

转载 作者:行者123 更新时间:2023-11-30 02:39:26 24 4
gpt4 key购买 nike

我对 java 中的多线程有一些困惑。

假设我有 3 个 CPU,具有以下详细信息

CPU 1:有 2 个核心CPU 2:有 2 个核心CPU 3:有 1 个核心

所以我有 3 个 CPU,其中有 5 个核心。

现在我想执行第5个线程。

public static void main(String[] args) {
Thread threadA = new CounterThread();
Thread threadB = new CounterThread();
Thread threadC = new CounterThread();
Thread threadD = new CounterThread();
Thread threadE = new CounterThread();

threadA.start();
threadB.start();
threadC.start();
threadD.start();
threadE.start();
}

一旦主程序被执行。它会在所有不同的 5 核上运行吗?

如果是,那么谁负责将请求传递给不同的核心以及如何传递?

有人可以详细说明一下吗?

提前致谢

最佳答案

So once that main program get executed. will it run on all different 5 Core ??

这是可能的,但是纯Java中没有办法控制它。如果线程阻塞,它们都可以在同一个核心上运行。

if it is yes then who is handling to pass the request to different core and how ?

硬件级别没有请求的概念,您拥有的只是需要以线程安全方式更新的内存。这允许您构建像线程安全队列这样的数据结构,您可以传递包含请求的消息。

is all scheduling decided by OS not JVM

如果您有 native 线程,则操作系统会执行所有操作。 JVM 会进行正确的系统调用来实现这一点。

关于java - java中多线程是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42176787/

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