当前位置:   article > 正文

从零开始java多线程到分布式锁(十二):Lock的实现原理_lock.lock 分布式

lock.lock 分布式

一:Lock锁接口的实现方式ReentrantLock()

ReentrantLock()是已知唯一一个Lock的实现。在上文我们都使用ReentrantLock()作为实现的。关于

 

二:Lock的特殊的Api-Condition

  在上一节,我们谈到了Lock常用的一些接口方法Lock(),tryLock()等等。实则上Lock还有一个api我们单独拿出来说-condition。每一个线程都可以返回一个condition,可以在代码的其他地方控制同步方法的堵塞和唤醒。

下面直接用一个实例来说明吧:

  1. package LockApi;
  2. import java.util.concurrent.locks.Condition;
  3. import java.util.concurrent.locks.Lock;
  4. import java.util.concurrent.locks.ReentrantLock;
  5. /**
  6. * Condition提供了比wait()/notity()更加丰富的功能
  7. * @author monxz
  8. *
  9. */
  10. public class ConditionService {
  11. private Lock lock = new ReentrantLock();
  12. public Condition condition = lock.newCondition();
  13. /**
  14. * 类似于wait()
  15. */
  16. public void await(){
  17. try{
  18. lock.lock();
  19. System.out.println("await的时间为 " + System.currentTimeMillis());
  20. //当前线程
  21. condition.await();
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/776227
推荐阅读
相关标签
  

闽ICP备14008679号