Java线程释放锁的一个小问题

指尖凉 2017-06-26 10:31:21

public void run() {
int count = 10;
while (count > 0) {
synchronized (a) {
synchronized(b) {
System.out.print(“AAAA”);
count--;
b.notify();
try {
a.wait(); //只会释放对象a的锁,即等待的时候还持有对象b的锁,还是两个锁都释放了?
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}

刚学Java多线程,注释里的问题有点疑惑。
...全文
164 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39326994 2017-06-27
  • 打赏
  • 举报
回复
对的,a.wait() 只会释放对象a的锁。
soton_dolphin 2017-06-26
  • 打赏
  • 举报
回复
因为是a.wait() 所以只会释放获得a对象的锁

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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