java-锁住高新
2024-02-02 21:38:36 0 举报
AI智能生成
在Java中,锁是一种用于控制对共享资源的并发访问的机制。锁可以确保同一时间只有一个线程可以访问共享资源,从而防止数据竞争和不一致。Java提供了多种锁机制,包括互斥锁(ReentrantLock)、读写锁(ReadWriteLock)和Condition变量等。在使用锁时,需要遵循一些最佳实践,如尽量降低锁的粒度、避免死锁和活锁等。在并发编程中,正确使用锁对于确保程序的正确性和性能至关重要。
作者其他创作
大纲/内容
线程要不要锁住同步资源
锁住
悲观锁
synchronized关键字
通过Monitor来实现线程同步,底层的操作系统的Mutex Lock(互斥锁)来实现的线程同步
Lock的实现类
AQS框架
ReentranLock(排他锁)
分析ReedtrantLock特性
简述ReedtrantLock与AQS关联性
AQS原理分析
AQS原理
数据结构分析
同步状态分析 volatioe state
ReetrantLock,AQS详细分析
状态,尝试获取状态,获取成功,更新资源,获取失败,线程加入队列
单向队列 先进先出
排队获取资源
加锁操作业务
通过reedtrantLock理解AQS
等待队列分析
CANCELLED状态分析
解锁分析
中断恢复分析
AQS应用分析
reedtrantLock 可重入机制
countdown(共享锁)
smphone(共享锁)
不锁住
乐观锁
CAS算法 比较替换原则
锁住同步资源,线程要不要阻塞
阻塞
wait() sleep()
不阻塞
自旋锁
适应性自旋锁
多线程竞争同步资源按照安全和性能升序
无锁
不锁住资源,多线程只有一个能修改资源成功,其他线程会重试
偏向锁
同一个线程执行同步资源时自动获取资源
轻量级锁
多个线程竞争同步资源时,没有获取到资源的线程自选等待锁释放
重量级锁
多线程竞争同步资源时,没有获取到资源的线程阻塞等待唤醒
多个线程竞争锁要不要排队
排队
公平锁
先尝试插队,插队失败再排队
非公平锁锁
一个线程多个流程能不能获取同一把锁
能
可重入锁主题,中断之后可以继续持有使用锁
不能
不可重入锁
多个线程能不能共享一把锁
能
共享锁
不能
排他锁
0 条评论
下一页
为你推荐
查看更多