关于Java中多线程中的sleep和wait的区别

首先可以看下IDEA中,sleep和wait最直观的区别:

 

 可以看出sleep为斜体,wait为普通体,在IDEA中斜体表示为静态方法,而静态方法和对象无关,也就是sleep方法,不可能获取到对象锁,也就无法释放对象锁(但是也存在锁,类锁)

而此处代码所写,也就意味着sleep和t1无关,不可能让t1线程休眠,而sleep方法会让当前调用这个方法的线程休眠

而wait为普通体,普通体为成员方法,和对象有关,可以获取对象锁,当然也可以释放对象锁

下面的代码就意味着wait方法和t2有关,会让t2线程等待

 

posted @ 2022-03-25 11:05  黑山魁七  阅读(66)  评论(0)    收藏  举报