多线程中 sleep()和wait()的作用与区别
学习Java一般是通过API开始
一、 sleep()方法
sleep()方法位于Thread类中。
sleep()方法的作用是 让当前正在执行的线程休眠指定的毫秒数
二、wait()方法
在Object类中有三个重载的方法
它的作用是导致当前线程等待
它主要与notify()和notifyAll()方法实现线程协作;
sleep()和wait()的区别
1.这两个方法来自不同的类分别是Thread和Object
2.最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法(锁代码块和方法锁)。
3.wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用(使用范围)
4.sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常