关于Java线程和进程优先级的一些问题

时间:2011-06-20 18:59:00

标签: java windows multithreading unix

我对线程有一个小问题。 在Unix系统上,我们有nice,可用于设置优先级 流程。 好的,在我的系统上,我调用了一些外部进程,但是,我想 为他们设定优先权。 在unix中,我可以调用其他ProcessBuilder并设置好 我想要的过程,但在Windows中,它是不可能的。

如果我启动具有某些优先级的线程,并在ProcessBuilder中使用 它,该进程将具有与线程相同的优先级? 或者还有其他方法可以做到这一点吗?

干杯

2 个答案:

答案 0 :(得分:5)

无法在Java中为进程(Process)级别设置优先级。

  

如果我启动一个具有某种优先级的线程,并在其中使用ProcessBuilder,那么该进程将具有与线程相同的优先级?或者还有其他方法可以做到这一点吗?

该过程将与JVM并行运行,因此它不会继承线程优先级。它将由操作系统自行安排。

如上所述,没有内置的跨平台方式来调整进程的优先级,但是有一个Thread.setPriority(int)。所以也许您可以通过外部程序在单独的线程中完成工作(而不是启动新进程)并在此线程上使用setPriority方法。

相关问题/答案:

答案 1 :(得分:4)

您可以编写C / C ++ DLL并导出调用SetPriorityClass的JNI函数

然后你可以在你的java代码中使用它