我有一个多线程应用程序,它启动一个外部应用程序来进行数据转换,为应用程序的后续部分做准备。
我有一个问题,当我将线程数设置为超过6个并发线程时,Runtime.getRuntime().exec()无法启动外部应用程序(我也尝试使用ProcessBuilder,但结果相同)。它不会抛出任何类型的异常,并且不会在标准输出流或标准错误流上捕获任何内容。更奇怪的是,在重启服务器时,我可以运行至少8个并发线程,持续几分钟没有问题,但随后问题又会再次出现。
我读到Linux的实现使用fork()命令,这可能会导致无法分配内存错误,但我没有得到任何这样的错误。
我已经写了另一个测试应用程序,只要启动X个notespad.exe就可以了,X大到100没有问题。
该应用程序在VMware环境中的Windows2003标准x64服务器上运行。JVM版本为1.6.0_11。
我可以更新JVM来尝试解决这个问题,但我想把这留到最后的努力,以避免需要用新的JVM版本测试所有应用程序。
发布于 2014-11-21 20:58:09
尝试从http://www.dlldump.com/download-dll-files_new.php/dllfiles/F/framedyn.dll/5.1.2600.2180/download.html下载动态链接库"framedyn.dll“并粘贴到C:\Windows\System32。
https://stackoverflow.com/questions/3761590
复制相似问题