Java 创建2700个线程后无法创建本机线程

Java 创建2700个线程后无法创建本机线程,java,multithreading,Java,Multithreading,在我的应用程序中,我需要使用多个线程来加快工作速度,但我一直面临这样一种情况,即无法创建本机线程。 我已经读到RAM决定了一个程序可以拥有的线程数,这取决于线程数*每个线程的堆栈大小 在Java中,我们如何知道线程的堆栈大小?我可以自己决定线程的堆栈大小吗?可以创建的本机线程数量取决于操作系统。相反,是操作系统阻止了您使用如此庞大的数据,而不是内存大小。这里没有足够的信息让我们尝试重现,甚至无法完全理解您的问题。尝试共享您遇到的一些代码和/或异常消息。恕我直言,如果您需要创建2700个线程,最有

在我的应用程序中,我需要使用多个线程来加快工作速度,但我一直面临这样一种情况,即无法创建本机线程。 我已经读到RAM决定了一个程序可以拥有的线程数,这取决于线程数*每个线程的堆栈大小


在Java中,我们如何知道线程的堆栈大小?我可以自己决定线程的堆栈大小吗?

可以创建的本机线程数量取决于操作系统。相反,是操作系统阻止了您使用如此庞大的数据,而不是内存大小。

这里没有足够的信息让我们尝试重现,甚至无法完全理解您的问题。尝试共享您遇到的一些代码和/或异常消息。恕我直言,如果您需要创建2700个线程,最有可能是您遇到了问题…在2700个线程中,上下文切换的开销可能会使您的程序运行较慢。试着用系统内省来获取CPU内核的数量,并为每个内核启动一个线程。这就是我想知道的。操作系统的限制是什么?这个数字可能不仅取决于操作系统,还取决于底层硬件。因此,在编译时知道这个数字真的有意义吗?我怀疑是否有办法计算出确切的数字。