gpt4 book ai didi

java - Java 在一个 CPU 上可以并发运行的最大线程数

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:13:11 25 4
gpt4 key购买 nike

拜托,我对某事感到困惑。我所知道的是,现代计算机的普通 CPU 上可以并发运行的最大线程数在 8 到 16 个线程之间。另一方面,使用 GPU 可以同时运行数千个线程,而无需调度程序中断任何线程来调度另一个线程。在几个帖子上: Java virtual machine - maximum number of threads https://community.oracle.com/message/10312772人们说他们在普通 CPU 上同时运行数千个 Java 线程。怎么会这样??我如何知道可以并发运行的最大线程数,以便我的代码根据底层架构动态地 self 调整。

最佳答案

线程不受可用处理器/内核数量的约束或限制。操作系统调度程序可以在单个 CPU 上的任意数量的线程之间来回切换。这就是“抢占式多任务处理”的含义。

当然,如果线程数多于核心数,则并非所有线程都会同时执行。有些人会被搁置,等待一个时间段。

在实践中,您可以拥有的线程数量受调度器限制——但该数量通常非常高(数千或更多)。它会因操作系统和个别版本而异。

至于从性能的角度来看有多少线程有用,正如您所说,这取决于可用处理器的数量以及任务是 IO 还是 CPU 密集型。尝试找到最佳数量,并在可能的情况下使其可配置。

关于java - Java 在一个 CPU 上可以并发运行的最大线程数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21650083/

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