关于锁释放两小段代码

发布于 2022-09-12 23:47:25 字数 593 浏览 12 评论 0

第一小段代码,queue是个BlockingQueue阻塞队列

            synchronized (waitLock){
               KaiFaBan takeValue=queue.take();//阻塞
            }

关于这段代码,想问下,take()一直处于阻塞状态的话,会不会释放锁对象waitLock???

第二小段代码;

           while (exec.isTerminated()){
              synchronized (waitLock){
                System.out.println("开始处理IO等其他耗时工作");
                //线程开启长耗时工作
                caozuo(s);
                break;
                //break之后的代码
              }
            }
            

关于这段代码,想问下break之后,会不会释放锁对象waitLock???谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

时光匆匆的小流年 2022-09-19 23:47:25
  1. 不会,因为还在同步块里面
  2. 会,因为会离开同步快
星星的軌跡 2022-09-19 23:47:25

synchronized内调用wait()会释放锁,否则不会

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文