gpt4 book ai didi

java - 为什么在此 java applet 教程代码中的循环中将线程优先级设置为最大?

转载 作者:行者123 更新时间:2023-12-02 07:49:00 25 4
gpt4 key购买 nike

我正在尝试学习一些基本的游戏 Java 编程。

我正在关注this tutorial here .

小程序中 run 方法的骨架代码:

public void run () 
{
// lower ThreadPriority
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);

// run a long while (true) this means in our case "always"
while (true)
{
// repaint the applet
repaint();

try
{
// Stop thread for 20 milliseconds
Thread.sleep (20);
}
catch (InterruptedException ex)
{
// do nothing
}

// set ThreadPriority to maximum value
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
}
}

在此代码中,他们最初将线程优先级设置为最低。然后在循环内将其设置为最大值。

我想知道这样做的目的是什么?

最佳答案

我不知道他们为什么决定最初将优先级设置为最低。我认为这是没有意义的。

但是,将优先级设置为高于正常值(也许最大值有点夸张)确实有意义。

一般来说,如果您有一个线程重复执行一个简短的操作然后 hibernate ,那么您通常想要的是尝试最大化线程“按时启动,做它的事情,然后返回 hibernate ”的概率在每次迭代中。一般来说,将线程优先级设置为高于平均水平会增加发生这种情况的机会。在 Windows 上尤其如此,线程优先级本质上会影响线程调度程序决定“下一步运行什么”时调度的线程。

您可能想阅读我几年前在 Java thread priority 上写的一篇文章这可能有助于解释所涉及的一些问题。

关于java - 为什么在此 java applet 教程代码中的循环中将线程优先级设置为最大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10464230/

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