0

我有一个多线程应用程序,它启动一个外部应用程序来进行数据转换,为应用程序的后续部分做准备。

我有一个问题,当我将线程数设置为高于 6 个并发线程时,Runtime.getRuntime().exec() 无法启动外部应用程序(我也尝试使用 ProcessBuilder 并获得相同的结果)。它不会抛出任何异常,也不会在标准输出流或标准错误流上捕获任何内容。更奇怪的是,在重新启动服务器后,我可以在几分钟内运行至少 8 个并发线程而不会出现问题,但问题会再次出现。

我读过 Linux 的实现使用了 fork() 命令,这可能导致无法分配内存错误,但我没有收到任何此类错误。

我已经编写了另一个测试应用程序来启动 X 个notespad.exe,而 X 大到 100 没有问题。

该应用程序在 VMware 环境中的 Window 2003 标准 x64 服务器上运行。JVM 版本为 1.6.0_11。

我可以更新 JVM 以尝试解决问题,但我想将其作为最后的努力,以防止需要使用新的 JVM 版本测试所有应用程序。

4

1 回答 1

-1

尝试从http://www.dlldump.com/download-dll-files_new.php/dllfiles/F/framedyn.dll/5.1.2600.2180/download.html下载 dll“framedyn.dll”并粘贴到 C:\视窗\系统 32。

于 2014-11-21T12:58:08.537 回答