gpt4 book ai didi

java - 如何根据 CPU 内核扩展线程?

转载 作者:IT老高 更新时间:2023-10-28 11:26:31 26 4
gpt4 key购买 nike

我想用 Java 中的多线程解决数学问题。我的数学问题可以分成几个工作单元,我想在几个线程中解决。

我不想让固定数量的线程在上面工作,而是让线程数量与 CPU 内核的数量相匹配。我的问题是,我在互联网上找不到一个简单的教程。我发现的都是固定线程的例子。

如何做到这一点?可以举个例子吗?

最佳答案

您可以使用静态运行时方法 availableProcessors 来确定 Java 虚拟机可用的进程数。 .确定可用处理器的数量后,创建该数量的线程并相应地拆分您的工作。

更新:为了进一步说明,线程只是 Java 中的一个对象,因此您可以像创建任何其他对象一样创建它。因此,假设您调用上述方法并发现它返回 2 个处理器。惊人的。现在,您可以创建一个循环来生成一个新线程,并为该线程拆分工作,并触发该线程。这里有一些伪代码来说明我的意思:

int processors = Runtime.getRuntime().availableProcessors();
for(int i=0; i < processors; i++) {
Thread yourThread = new AThreadYouCreated();
// You may need to pass in parameters depending on what work you are doing and how you setup your thread.
yourThread.start();
}

有关创建自己的线程的更多信息,head to this tutorial .此外,您可能想查看 Thread Pooling用于创建线程。

关于java - 如何根据 CPU 内核扩展线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1980832/

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