And*_*rew 3 java windows process windows-task-scheduler
在一个相关的问题中,我们使用ProcessBuilder探索了使用依赖于操作系统的命令以低优先级启动外部进程.我还发现,如果父进程的优先级较低,那么它生成的所有进程都将以低优先级启动.所以我的新问题是关于以低优先级启动java文件(通过双击Windows中的可执行jar运行)或在运行期间以编程方式更改其优先级.我尝试改变线程优先级,但这对Windows进程优先级没有影响.
我尝试了以下操作,但它不会更改任务管理器中的进程优先级
public class hello{
public hello(){
try{
Thread.currentThread().setPriority(1);
Thread.sleep(10000);
}catch(Exception e){e.printStackTrace();}
}
}
Run Code Online (Sandbox Code Playgroud)
我能想到的唯一另一件事是使用批处理文件运行程序,但我宁愿把它留在家里也可以这么说.那么有谁知道基于java的方式来改变当前的进程优先级?理想情况下,能够在程序运行时更改进程的优先级以响应用户输入,这将是很好的.
也许你正试图做一些操作系统为你做的事情.
在Unix中,在负载下,每个进程都有一个很短的时间片来完成它的工作.如果它使用所有时间片,则假定进程受CPU限制,优先级降低.如果它在IO上阻塞,则假定它是IO绑定并且其优先级被提高(因为它没有使用它的所有时间片)
所有这些只在没有足够的CPU时才有意义.如果在大多数情况下将CPU负载保持在100%以下,则每个进程将获得所需的CPU数量,并且优先级没有太大差别.
| 归档时间: |
|
| 查看次数: |
10311 次 |
| 最近记录: |