Java Thread.wait()警告

Java Thread.wait()警告,java,multithreading,performance,wait,Java,Multithreading,Performance,Wait,当我将Thread.wait()括在while循环中时,我的IDE(NetBeans)告诉我这可能会导致性能问题,这怎么可能呢?有什么办法可以解决吗 例如: while (timing){ Thread.wait(10); foo++; } //Started in a seperate thread before activating. 编辑:感谢您的帮助,我将尝试使用“ScheduledExecutorService”代替 您

当我将Thread.wait()括在while循环中时,我的IDE(NetBeans)告诉我这可能会导致性能问题,这怎么可能呢?有什么办法可以解决吗

例如:

    while (timing){
        Thread.wait(10);
        foo++;
        }
    //Started in a seperate thread before activating.

编辑:感谢您的帮助,我将尝试使用“ScheduledExecutorService”代替

您可能只想让线程
睡眠
,这就是您需要调用的方法的名称

您调用了
对象#wait()
,这是一种线程协调方法,并对其使用了显式超时(相当短)。我的猜测是,NetBeans正在警告您这个超时,因为通常我们使用
Object#wait
而没有超时,如果我们使用超时,我们就不会在循环中
wait


现在,NetBeans还将警告您不要在循环中使用
Thread.sleep()
,因为通常情况下,如果您想安排重复的任务(这就是您正在做的),您将使用
ScheduledExecutorService
。该服务能够为应用程序周围的许多不同的预定任务提供服务,所有这些任务都是通过一个线程完成的。在循环中显式编写
Thread.sleep()
会占用整个线程(一个重量级的系统资源)的大部分时间,除了睡眠之外什么也不做。

这里的问题相同:提供更多背景,很难说在没有更多信息的情况下睡觉还是等待更好……Class
Thread
没有静态方法
wait
。我希望您没有声明名为
Thread
的变量。我们谈论的是同一个
java.lang.Thread
,还是你的线程是另一个类?在类似于游戏循环的情况下,10毫秒的延迟应该是可以的。NickL提出的问题包含了更多关于此类睡眠可能导致性能问题的案例的信息。