<分区>
我正在学习 Java 中的多线程和并发。阅读大量关于 stack-overflow 和在线的帖子。但是没有清零。所以请多多包涵。
首先我的疑问是,有人说可以同时运行的线程数等于(n = 处理器核心数)是否正确?我真的不确定这个说法。
但是我读到我们可以在 JVM 中创建我们想要的线程,这只取决于我们分配给 JVM 的内存。是否正确?
我们应该如何决定一个 java 程序并行运行的线程数?它与处理器内核的某个地方有关吗?
<分区>
我正在学习 Java 中的多线程和并发。阅读大量关于 stack-overflow 和在线的帖子。但是没有清零。所以请多多包涵。
首先我的疑问是,有人说可以同时运行的线程数等于(n = 处理器核心数)是否正确?我真的不确定这个说法。
但是我读到我们可以在 JVM 中创建我们想要的线程,这只取决于我们分配给 JVM 的内存。是否正确?
我们应该如何决定一个 java 程序并行运行的线程数?它与处理器内核的某个地方有关吗?
最佳答案
number of threads can run in parallel is equivalent to (n= number of processor cores)
是的,这个说法是正确的。
But I have read that we can create as much threads we want in JVM, it only depends upon the memory we have allocated to JVM. Is it correct ?
理论上是的。您可以在 JVM 中创建任意数量的 Threads
,直到出现 OutOfMemoryError
。但是创建 Threads
是一项代价高昂的任务,因此作为最佳实践,请考虑改用共享线程池。这可以使用 ExecutorService
框架来实现。
关于java - 有多少个线程可以并行运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52676163/