可以并行运行多少个线程?

时间:2018-10-06 05:58:13

标签: java multithreading concurrency

我正在学习Java中的多线程和并发。阅读有关堆栈溢出和在线的大量文章。但未清除。所以,请忍受我。

首先我的疑问是,有人说可以同时运行的线程数等于(n =处理器内核数)是否正确?我真的不确定这句话。

但是我已经读到我们可以在JVM中创建所需的尽可能多的线程,这仅取决于我们分配给JVM的内存。正确吗?

我们应该如何确定一个Java程序并行运行的线程数?它与处理器核心相关吗?

1 个答案:

答案 0 :(得分:2)

  

可以并行运行的线程数等于(n =   处理器内核)

是的,这是真的。

  

但是我读到我们可以在JVM中创建所需的尽可能多的线程,   仅取决于我们分配给JVM的内存。正确吗?

理论上是。您可以在JVM中创建任意数量的Threads,直到获得OutOfMemoryError。但是创建Threads是一项昂贵的任务,因此,最佳实践是考虑使用共享线程池。这可以使用ExecutorService框架来实现。