Ale*_*sky 4 java linux scheduling processbuilder
我需要在低优先级下启动CPU密集型系统进程,这样它不会减慢我的服务器速度.我怎么能在Linux上这样做?
这与此问题类似:使用Runtime.exec/ProcessBuilder.start以低优先级启动Java进程?除了Linux而不是Windows.如果在进程启动后更改进程的优先级(只要没有太多延迟),则可以.
Ste*_*n C 10
使用运行命令/usr/bin/nice.例如:
$ /usr/bin/nice -n 10 somecommand arg1 arg2
Run Code Online (Sandbox Code Playgroud)
将以somecommand arg1 arg2+10的优势运行.(在Unix/Linux中,较大的niceness值会导致较低的调度程序优先级.范围nice通常为-19到+19.)
请注意,此解决方案特定于平台.它只适用于Linux和Unix系统......
跟进
ProcessBuilder应该像任何普通命令一样实例化; 即
new ProcessBuilder("nice", "-n", "10", "somecommand", "arg1", "arg2");
Run Code Online (Sandbox Code Playgroud)
关于何时/如何拆分命令/参数没有黑魔法.命令(例如nice)语法确定它应该是什么,并且它确定它们应该如何在shell命令行上引用,以及它们在使用时应该如何提供ProcessBuilder(或者exec*本质系统调用).
我不认为应该有waitFor()等问题,因为(AFAIK)/usr/bin/nice命令使用exec(而不是fork/ exec)来运行提供的命令.试试看 ...
| 归档时间: |
|
| 查看次数: |
3676 次 |
| 最近记录: |