跨平台方式改变java进程优先级

gor*_*uad 8 java

我需要在另一个Java应用程序的独立JVM中调用.jar文件,并且它非常耗费CPU,因此它应该以后台优先级运行,以免影响系统的其余部分.有没有任何跨平台的方法来做到这一点?

Ste*_*n C 3

简单的答案是,没有可移植的方法来更改 Java 中进程的优先级。(线程 - 是,进程 - 否。)

如果您的 Java 应用程序需要启动新的 JVM 来运行 CPU 密集型应用程序,那么它很可能已经不完全可移植。例如,您通常需要提供java命令(或等效项)的路径名、-cp参数(或等效项)、系统特定的 JVM 选项等。

因此,假设启动 JVM 的命令已经是不可移植的,那么如果您使用执行特定于操作系统的操作来更改已启动进程的优先级的包装器脚本替换该命令,那应该没什么关系。(例如,对于 UNIX 或 Linux,您可以简单地使用nice它来启动 JVM。)