Java :多线程、对象锁、wait()的联合使用

虾毛 2019-05-22 02:39:59
本人想使用两个对象锁,即synchronized的嵌套使用。线程的创建是实现Runnable接口,在构造方法中传入连个对象来实现两个对象锁。
class 类 implement Runnabale {
synchronized(Obj1){
执行部分代码························;

synchronized(Obj2){
执行部分代码························;

if(条件判断){
Obj2.wait();
}
}
}

创建线程时Obj2 分别创建的多个对象(即创建多个锁),但是当内部的if条件满足时执行 Obj2.wait();所有线程都停止,是为什么。
先要的结果是只有 只有满足条件的线程停止,其余的继续工作。
...全文
149 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhiwei.j 2019-05-23
  • 打赏
  • 举报
回复
obj1.wati()只是的释放了obj1的对象锁,obj2的对象锁还被持有
虾毛 2019-05-23
  • 打赏
  • 举报
回复


这两张图片是我的代码,就是想实现,obj1对象锁住后继续执行obj2内容继续执行!
faith.huan 2019-05-22
  • 打赏
  • 举报
回复
其余线程可能在等待obj1的锁
走好每一步 2019-05-22
  • 打赏
  • 举报
回复
信息不足,不知所云

51,411

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧