`
greens.leaf
  • 浏览: 60915 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在Java VM中创建Process时指定优先级

阅读更多
Java环境中,调用RunTime.exec()创建操作系统进程的时候,没有办法指定优先级。Thread.setPriority()倒是可以指定优先级,可是这个进程是在Java虚拟机里面的。

翻了翻,大牛们是说这个问题是Platform Specific,所以在Java环境中不提供解决办法。这个说法不怎么靠得住,文件系统同样是系统相关,Java不就支持的挺好。

有聪明人提出在Windows平台上可以借用 start.exe /LOW 来搞定这个事情,试了以下,完整的写法应该是:

cmd /c start /b /low yourcmd

cmd /c:后面的start貌似是个内部命令,类似cd,必须通过cmd 执行
start:启动一个新的窗口来执行命令
      /b :不要实际的创建窗口
     /low:以低优先级运行,其它还有
          /normal  以一般优先级启动应用程序。
          /high 以高优先级启动应用程序。
          /realtime 以实时优先级启动应用程序。
          /abovenormal 以超出常规优先级的方式启动应用程序。
          /belownormal 以低出常规优先级的方式启动应用程序。
yourcmd:实际执行的命令行。

适用范围有限,Win2003及以上上没有问题,其它版本不确定。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics