标签:调用 notifyAll Object 线程 notify wait
Object类
1.Object类是所有Java类的根父类
2.如果类的声明中未使用extends关键字指明其父类,则默认父类为Java.lang.Object类
3.Object类
属性:无
方法:equals()、toString()、getClass()、hashcode()、clone()、finalize()、wait()、notify()、notifyAll()
4.万物皆对象,除8种数据类型以外都是Object的子类
wait()、notify()、notifyAll()
- notify():可以唤醒一个在该对象上等待的线程
- notifyAll():唤醒所有在该对象上等待的线程
- wait():是指在一个已经进入了同步锁的线程内,让自己暂时让出同步锁,以便其他正在等待此锁的线程可以得到同步锁并运行,只有其他线程调用了notify方法(notify并不释放锁,只是告诉调用过wait方法的线程可以去参与获得锁的竞争了,但不是马上得到锁,因为锁还在别人手里,别人还没释放),调用wait方法的 一个或多个线程就会解除wait状态,重新参与竞争对象锁,程序如果可以再次得到锁,就可以继续向下运行
wait()、sleep()区别
1.wait()
①:属于Object类,一旦一个对象调用了wait(),必须用notify()、notifyAll()唤醒该线程
②:会释放锁,线程进入等待池,释放CPU
③:不需要捕获异常
④:wait()、notify()、notifyAll()需要在同步代码中使用
2.sleep()
①:属于Thread类,线程调用sleep()后,进入其他阻塞状态,睡眠结束后进入就绪态
②:会暂时释放CPU,但不会释放锁
③:需要捕获异常
④:可以在任何地方使用
标签:调用,notifyAll,Object,线程,notify,wait 来源: https://blog.csdn.net/weixin_41409363/article/details/115428499
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。