Java教程

终于搞清楚了:java中wait和sleep的区别

本文主要是介绍终于搞清楚了:java中wait和sleep的区别,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

都是睡眠

wait是Object类的方法,会释放锁。

sleep是Thread.sleep的方法,不会释放锁。

当线程执行wait()方法时候,会释放当前的synchronized锁住的对象,然后让出CPU,进入等待状态。

对锁的 处理机制不同。由于sleep()方法的主要作用是让线程暂停执行一段时间,时间一到则自动恢复,不涉及线程间的通信,因此,调用sleep()方法并不会释放锁。而wait()方法则不同,当调用wait()方法后,线程会释放掉他所占用的锁,从而使线程所在对象中的其他synchronized数据可以被其他线程使用。

这篇关于终于搞清楚了:java中wait和sleep的区别的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!