跨平台更改Java进程优先级的方法
问题内容:
我需要在与另一个Java应用程序分开的JVM中调用.jar文件,它非常占用CPU,因此应以后台优先级运行,以免影响系统的其余部分。有没有跨平台的方法可以做到这一点?
问题答案:
简单的答案是,没有可移植的方法来更改Java中进程的优先级。(线程-是,进程-否。)
如果您的Java应用程序需要启动一个新的JVM来运行CPU密集型应用程序,那么很可能它不是完全可移植的。例如,通常需要提供java命令的路径名(或等效项),-cp参数(或等效项),系统特定的JVM选项,等等。
因此,假设启动JVM的命令已经不可移植,那么用一个包装程序脚本替换该命令就无关紧要,该脚本执行特定于OS的操作来更改启动进程的优先级。(例如,对于UNIX或Linux,您可以仅使用它nice来启动JVM。)