学习笔记:ReentrantLock可重入锁

0
回复
275
查看
[复制链接]

33

主题

75

帖子

522

安币

代码手工艺人

Rank: 4

QQ达人

发表于 2019-12-18 16:45:01 | 显示全部楼层 |阅读模式
如果对本篇文章感兴趣,请前往,原文地址:http://www.apkbus.com/blog-250115-82799.html

1 使用方法:   private ReentrantLock mLock = new ReentrantLock();
               ......
                   mLock.lock();                ...... //加锁块
                mLock.unlock();
              ......
2 特点
   1 公平实现:谁等的时间最长,谁就先获取锁
      private ReentrantLock mLock = new ReentrantLock(true);
   2 非公平实现:随机的获取,谁运气好,cpu时间片轮到哪个线程,哪个线程就能获取锁
      private ReentrantLock mLock = new ReentrantLock();
      或
     private ReentrantLock mLock = new ReentrantLock(false);
   3 响应中断
      一个线程获取不到锁,不会傻傻的一直等下去,ReentrantLock会给予一个中断回应。允许线程中断并给予响应。
   4 限时等待
      tryLock(long timeout,TimeUnit unit)
      tryLock() 直接返回是否获取成功
后续研究AQS等。







  继续阅读全文



想在安卓巴士找到更多优质博文,可移步博客区

如果对本篇文章感兴趣,请前往,
原文地址:
http://www.apkbus.com/blog-250115-82799.html
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

领先的中文移动开发者社区
18620764416
7*24全天服务
意见反馈:1294855032@qq.com

扫一扫关注我们

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粤ICP备15117877号 )