有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java应用程序:在内存溢出时要求等待

我有一个java应用程序,产生了很多线程。。由于内存不足错误。。如果运行时间过长,它就会死亡。。是否有一个jvm配置参数,我可以将其设置为在没有可用内存时等待内存,而不是抛出内存不足错误


共 (2) 个答案

  1. # 1 楼答案

    往后退一点。如果您的应用程序正在创建太多线程,以致JVM内存不足,那么您确实需要重构以使用某种线程池机制。您可以捕获内存不足异常并查看是否有线程释放了资源,然后返回而不进行处理,但这对我来说是一种糟糕的代码味道

  2. # 2 楼答案

    我真的不认为将其设置为jvm参数是可行的。您应该将-Xmx和-Xms设置为JVM的适当值。之后,在代码中可以使用Runtime.freeMemory检查堆上的当前可用内存。如果可用内存太低,您可能会使线程休眠,直到您有足够的内存进行处理