gpt4 book ai didi

java - 如何更改正在运行的java进程的优先级?

转载 作者:可可西里 更新时间:2023-11-01 14:42:10 26 4
gpt4 key购买 nike

related question 中我们探索了使用 ProcessBuilder 使用依赖于操作系统的命令以低优先级启动外部进程。我还发现,如果父进程的优先级较低,那么它的所有派生进程都会以低优先级启动。所以我的新问题是关于以低优先级启动 java 文件(通过双击 Windows 中的可执行 jar 运行)或在运行期间以编程方式更改其优先级。我试过改变线程优先级,但这对 Windows 进程优先级没有影响。

我试过以下,但它并没有改变任务管理器中的进程优先级

public class hello{
public hello(){
try{
Thread.currentThread().setPriority(1);
Thread.sleep(10000);
}catch(Exception e){e.printStackTrace();}
}
}

我唯一能想到的另一件事是使用批处理文件运行程序,但可以这么说,我宁愿把它留在家里。那么有没有人知道一种基于 java 的方法来更改当前进程的优先级?理想情况下,能够在程序运行时更改进程的优先级以响应用户输入会很好。

最佳答案

也许您正在尝试做操作系统为您做的事情。

在 Unix 中,在负载下,每个进程都有一小段时间来完成它的工作。如果它使用了它的所有时间片,则假定该进程受 CPU 限制,它的优先级较低。如果它阻塞在 IO 上,则假定它是 IO 绑定(bind)的并且它的优先级被提高(因为它没有使用它的所有时间片)

所有这些只有在没有足够的 CPU 时才有意义。如果您在大多数时间将 CPU 负载保持在 100% 以下,则每个进程都会根据需要获得尽可能多的 CPU,并且优先级不会有太大差异。

关于java - 如何更改正在运行的java进程的优先级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6239142/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com