[JAVAee]wait方法与sleep方法的区别

最明显的一个区别是,wait方法需要搭配synchronized关键字进行使用.而sleep方法的使用不需要

wait是一个Object类的方法,sleep是Thread类的一个静态方法

方法 说明

public static void sleep(long millis) throws interruptedException

使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行),具体取决于系统定时器和调度程序的精度和准确性。 线程不会丢失任何显示器的所有权。

public final void wait( ) throws interruptedException

导致当前线程等待,直到另一个线程调用该对象的notify()方法或notifyAll()方法。

他们所使用的目的本质是不同的,sleep方法是对于单个线程来说,简单的让其休眠\暂停运行一定的时间.时间一到而恢复运行,继续执行下面的代码.                                                                         而对于wait来说,更偏向于不同线程间的通信合作的一个工具,因为wait方法一般要搭配notify或者notifyAll方法来使用.需要两个线程之间构成一定的联系.

你可能感兴趣的:(java,jvm,开发语言)