2012-10-01 62 views
0

我有一个Java进程,我想在Windows(see here)中运行带有后台优先级的进程。有没有简单的方法来做到这一点?使用Java在Windows中设置进程优先级为背景优先级

+0

您可以使用setPriority来设置它,但它通常被视为一个提示,即使它不是,它也几乎没有区别。 –

+3

阅读http://stackoverflow.com/questions/2865610/cross-platform-way-to-change-java-process-priority和http://stackoverflow.com/questions/6239142/how-to-change这可能会有所帮助,这是一个运行优先级的java进程 – MadProgrammer

回答

0

Java并未强制执行线程的任何实现,因此Windows上的Sun JVM与Linux上的Sun JVM等工作方式不同.Windows线程模型与Linux线程模型非常不同。甚至没有任何事情要求Java线程映射到底层的OS线程。没有(或者当我在一年前看过的时候),任何文档JVM如何在WINDOWS上实现线程。

但是,在您的Windows特定情况下,您可能会使用JNI或COM接口来更改进程/线程优先级。我不会打扰,但我认为这会非常脆弱,很难测试。从Java线程对象中获取底层Windows线程ID是一个很困难的问题。

你的背景任务监测/做什么?你能否以不同的方式思考你的问题:它的本质是什么? Java并发API可能有助于提供明确要求的替代解决方案。