A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Lock:  Lock 实现提供了比使用 synchronized 方法和语句可获得的更广泛的锁定操作
代码 Lock l=new ReentrantLock()
在需要加锁的地方l.lock() 需要解锁的地方l.unlock()

Condition 将 Object 监视器方法(wait、notify 和 notifyAll)分解成截然不同的对象,
以便通过将这些对象与任意 Lock 实现组合使用
Condition中 await  signal  signalAll
代码Condition c1=l.newCondition();
      Condition c2=l.newCondition();
       。。。。。。。。。。。。。。
      c1.await();//通过c1监视器来让该线程等待
      c1.signal();//唤醒该线程
      c2.await();//通过c2监视器来让该线程等待
      c2.signal();//唤醒该线程
操作起来十分灵活

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1 赞一个!

查看全部评分

1 个回复

倒序浏览
毕老师视频里的总结我觉的很到位,这其实就是java1.5以后关于Lock接口和Condition接口的使用特点(相比java1.5之前版本)
           Lock   接口:替代了同步代码块或者同步函数,将同步的隐式锁操作变为显示锁操作,同时更为灵活,可以一个锁加多组监视器
                lock():获取锁
                unlock():释放锁
        Condition接口:替代了Object中的wait  notify  notifyAll方法,将这些监视器方法单独进行了封装,变成Conditon监视器对象,可以任意锁进行组合
                await()
                signal()
                signalAll()

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马