Java 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

Linux中运行的线程数量是否有最大限制?
可以计算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