在64位和8 GB的Mac上,“ java.lang.OutOfMemoryError:无法创建新的本机线程”! [重复]

|                                                                                                                   这个问题已经在这里有了答案:                                                      
已邀请:
最大线程数是有限制的,它与您实际拥有的内存量无关。看到这个问题。     
创建数千个线程后,JVM的大多数实现都会遇到限制。尽管可能有一些方法可以对此进行调整(例如,使用-Xss减少堆栈大小),但没有很多充分的理由可以使用数千个线程,除非您有数千个处理器。 相反,您应该考虑使用更少的线程以提高效率。如果要占用大量CPU,可以使用一些方法来关闭处理器数量。如果它们在非CPU上被阻止,则线程数可能会多于处理器。 您可以使用“ 0”来管理线程池。例如。:
int processors = Runtime.getRuntime().availableProcessors();
ExecutorService service = Executors.newFixedThreadPool(processors);
    

要回复问题请先登录注册