Java Linux中运行的线程数量是否有最大限制?
Linux中运行的线程数量是否有最大限制?Java Linux中运行的线程数量是否有最大限制?,java,linux,multithreading,Java,Linux,Multithreading,Linux中运行的线程数量是否有最大限制? 可以计算java中所有类的线程总数吗?从技术上讲,为了获得最佳性能,您应该使用2倍数量的PhysicalCores线程。post描述了最大线程数(感谢@gavriel找到它:P) 接下来,要获取当前JVM中正在运行的线程数: public static void main(String[] args) throws IOException, InterruptedException { ExecutorService service = Exe
可以计算java中所有类的线程总数吗?从技术上讲,为了获得最佳性能,您应该使用2倍数量的PhysicalCores线程。post描述了最大线程数(感谢@gavriel找到它:P) 接下来,要获取当前JVM中正在运行的线程数:
public static void main(String[] args) throws IOException, InterruptedException {
ExecutorService service = Executors.newFixedThreadPool(4);
service.execute(new Runnable() {
public void run() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
System.out.println(Thread.getAllStackTraces().size());
}
O/P : 5
你的意思是:?已经提供了一些很好的答案。虽然最大数量要高得多,但实际的限制是一旦你有足够的线程让所有的核心保持忙碌,添加更多的线程可能只会增加开销并降低应用程序的速度+1@PeterLawrey-我宁愿在这里得到你的答案,而不是你的投票:)。。遗憾的是,这个问题一直没有解决closed@PeterLawrey-OP询问如何让所有线程在JVM中运行。不是
Thread.getAllStackTraces()
这样做吗?你是对的。我错过了有两个问题,所以你的回答有意义。你真的只有5个线程,包括GC/JVM系统线程吗?@PeterLawrey-哦,我明白了。。我不得不说:“太糟糕了,P