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