目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

JAVA全系列 教程

3762个小节阅读:7089.1k

收藏
全部开发者教程

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(575)
赞(0)

支付通知_ReentrantLock数据锁

img

什么是ReentrantLock

ReentrantLock基于AQS,在并发编程中可以实现公平锁非公平锁来对资源进行同步,同时,和synchronized一样,ReentrantLock支持可重入,ReentrantLock在调度上更灵活,支持更多丰富的功能。

温馨提示:

ReentrantLock是java.util.concurrent包下提供的一套互斥锁,相比Synchronized,ReentrantLock类提供了一些高级功能。

公平锁和非公平锁

image-20220426112342901

第一只兔子还没喝完水又来一只兔子。

image-20220426113338526

第一只兔子喝水喝的有点慢,之后来了两只兔子,都被小狗安排进了队列。

image-20220426113229518

非公平和公平锁的区别

image-20220426113911300

ReentrantLock和synchronized区别

img

  • synchronized是独占锁,加锁和解锁的过程自动进行,易于操作,但不够灵活。ReentrantLock也是独占锁,加锁和解锁的过程需要手动进行,不易操作,但非常灵活。
  • synchronized可重入,因为加锁和解锁自动进行,不必担心最后是否释放锁;ReentrantLock也可重入,但加锁和解锁需要手动进行,且次数需一样,否则其他线程无法获得锁。

业务加锁

实时效果反馈

1.ReentrantLock基于__实现独占锁。

A AQS

B CAS

C APT

D 以上都是错误

2.下列描述ReentrantLock和Synchronized区别正确的是__

A 采用synchronized不需要用户去手动释放

B ReentrantLock必须要用户去手动释放锁

C synchronized不可中断,除非抛出异常

D 以上都是正确

答案

1=>A 2=>D

 

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2