在Unix系统上,您可以使用 nice
命令以较低的CPU优先级运行进程:
nice program
您可以使用它来运行JVM进程:
nice java -jar program.jar
由该JVM进程运行的Java程序将启动多个线程 .
nice
更改是否会影响这些Java线程的调度?也就是说,Java线程在运行时是否具有较低的CPU优先级
nice java -jar program.jar
当运行时
java -jar program.jar
一般来说,这将取决于系统,所以我对Linux案件很感兴趣 .
3 回答
实际上......根据POSIX.1,Niceness是应用程序的属性 . 这是一篇更详细的文章 . is nice() used to change the thread priority or the process priority?
根据
ps
报告的好处适用于java线程 . 我使用等待用户输入的java应用程序运行此快速测试:启动流程:
nice -n 19 java Main
输出
ps -m -l 20746
启动流程:
nice -n 15 java Main
输出
ps -m -l 21488
NI
列似乎反映了我传递给nice
的内容,优先级也相应地发生了变化 . 我使用jps
获得了进程ID(20746,21488) .请注意,例如,运行
jstack 21488
将不会提供上述信息 .我在Ubuntu 16.04 LTS(64位)上运行了上述内容
Java并不特别 . 这只是一个过程,操作系统以与任何其他过程相同的方式设置其“好处” .
在Linux上,Java线程是使用本机线程实现的,因此,“niceness”受OS控制的影响与任何其他本机线程相同 .