我对线程有一个小问题。
在Unix系统上,我们有nice
,可用于设置优先级
流程。
好的,在我的系统上,我调用了一些外部进程,但是,我想
为他们设定优先权。
在unix中,我可以调用其他ProcessBuilder并设置好
我想要的过程,但在Windows中,它是不可能的。
如果我启动具有某些优先级的线程,并在ProcessBuilder中使用 它,该进程将具有与线程相同的优先级? 或者还有其他方法可以做到这一点吗?
干杯
答案 0 :(得分:5)
无法在Java中为进程(Process
)级别设置优先级。
如果我启动一个具有某种优先级的线程,并在其中使用
ProcessBuilder
,那么该进程将具有与线程相同的优先级?或者还有其他方法可以做到这一点吗?
该过程将与JVM并行运行,因此它不会继承线程优先级。它将由操作系统自行安排。
如上所述,没有内置的跨平台方式来调整进程的优先级,但是有一个Thread.setPriority(int)
。所以也许您可以通过外部程序在单独的线程中完成工作(而不是启动新进程)并在此线程上使用setPriority
方法。
答案 1 :(得分:4)
您可以编写C / C ++ DLL并导出调用SetPriorityClass的JNI函数
然后你可以在你的java代码中使用它