Запустите команду, используя /usr/bin/nice
. Например:
$ /usr/bin/nice -n 10 somecommand arg1 arg2
будет запускаться somecommand arg1 arg2
при привлекательности +10. (В Unix / Linux большее значение добротности приводит к более низкому приоритету планировщика. Диапазон nice
обычно составляет от -19 до +19.)
Обратите внимание, что это решение зависит от платформы. Он будет работать только в системах Linux и Unix ...
СЛЕДОВАТЬ ВВЕРХ
ProcessBuilder должен создаваться так же, как любая обычная команда; т.е.
new ProcessBuilder("nice", "-n", "10", "somecommand", "arg1", "arg2");
Нет чёрной магии в том, когда / как разделять команды / аргументы. Синтаксис команды (например, nice
) определяет, какими аргументами она должна быть, и это определяет, как они должны заключаться в кавычки в командной строке оболочки, и как они должны предоставляться при использовании ProcessBuilder
(или собственных системных вызовов exec*
это важно).
Я не думаю, что должны быть проблемы с waitFor()
и т. Д., Поскольку (AFAIK) команда /usr/bin/nice
использует exec
(не fork
/ exec
) для запуска предоставленной команды. Попробуйте ...