用低优先级启动一个进程(使用Runtime.execProcessBuilder.start)

用低优先级启动一个进程(使用Runtime.execProcessBuilder.start),第1张

概述用低优先级启动一个进程(使用Runtime.exec / ProcessBuilder.start)

我需要在低优先级的情况下启动一个cpu密集型的系统进程,这样它不会减慢我的服务器。 我怎么能在linux上做到这一点?

这与此问题类似: 使用Runtime.exe / ProcessBuilder.start以低优先级启动Java进程? 除了linux而不是windows。 如果进程启动后进程的优先级改变(只要没有太多的延迟),那也没关系。

如何增加新产生的进程的cpu频率

进程nice(优先级)设置对linux没有影响

内核模式下的linux进程调度

我将如何去deBUGging执行脚本的cron作业,但脚本似乎不完整?

* nix下的非GUI应用程序的体面事件库是什么? (C ++)

使用/usr/bin/nice运行该命令。 例如:

$ /usr/bin/nice -n 10 somecommand arg1 arg2

将运行一些somecommand arg1 arg2在+10的somecommand arg1 arg2 。 (在Unix / linux中,较高的nice值会导致调度程序的优先级降低, nice的范围通常为-19到+19)。

请注意,此解决方案是平台特定的。 它只能在linux和Unix系统上工作…

跟进

ProcessBuilder应该像任何常规命令一样被实例化; 即

new ProcessBuilder("nice","-n","10","somecommand","arg1","arg2");

关于什么时候/如何分割命令/参数没有黑魔法。 命令(例如nice )语法决定了它的参数应该是什么,并决定了它们应该如何在shell命令行上引用,以及如何在使用ProcessBuilder (或者本机exec* syscalls)时提供它们。

我不认为应该有waitFor()等问题,因为(AFAIK) /usr/bin/nice命令使用exec (而不是fork / exec )来运行提供的命令。 试试看 …

总结

以上是内存溢出为你收集整理的用低优先级启动一个进程(使用Runtime.exec / ProcessBuilder.start)全部内容,希望文章能够帮你解决用低优先级启动一个进程(使用Runtime.exec / ProcessBuilder.start)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1155741.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存