本篇文章为大家展示了AQS的ReentLock的作用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
什么是公平锁 什么是非公平锁?
公平锁: 先到临界区的线程要比后到临界区的线程先获得锁
非公平锁: 先到临界区的线程未必比后到临界区的线程先获得锁。
怎么实现公平锁和非公平锁?
公平锁把竞争的线程放在一个队列上,只要持有锁的线程执行完了,唤醒下一个队列的线程去获取锁, 非公平锁的实现也很简单,就是线程先尝试能不能获取到锁,如果获取到锁就执行同步代码块,如果没有获取到锁,就把这个线程放到队列中去。所以公平锁和非公平锁的区别是线程执行同步代码块时,是否会尝试获取锁。
为什么要创建队列? 线程一直尝试获取锁不就行了么?
一直尝试获取锁 就是自旋锁,是耗费资源的。多个线程一直在自旋,而且大多数是竞争失败的,应该没有人会这样实现吧。
上述内容就是AQS的ReentLock的作用,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。