0
点赞
收藏
分享

微信扫一扫

多线程笔记-锁(待续)

笙烛 2021-09-29 阅读 71
随笔

概述

CAS算法

一般情况下是一个自旋操作,即不断的重试

自旋锁

《 面试必备之深入理解自旋锁》

http://blog.leanote.com/post/medusar/%E8%87%AA%E6%97%8B%E9%94%81

自适应, 可重入和不可重入,优缺点(公平性,上下文切换,cpu使用率)

定义

busy_waiting

线程同步的实现机制

critical section

是每个线程中访问临界资源的那段代码,不论是硬件临界资源,还是软件临界资源,多个线程必须互斥地对它进行访问,临界资源是一次 仅允许 一个线程使用的共享资源

自旋锁与互斥锁

自旋锁与互斥锁都是为了实现保护资源共享的机制。
无论是自旋锁还是互斥锁,在任意时刻,都最多只能有一个保持者。
获取互斥锁的线程,如果锁已经被占用,则该线程将进入睡眠状态;获取自旋锁的线程则不会睡眠,而是一直循环等待锁释放。

乐观锁

ABA是乐观锁常见的问题

偏向锁

死磕Synchronized底层实现--偏向锁

Java并发编程:Synchronized底层优化(偏向锁、轻量级锁)

重量级锁

Mutex Lock

重量级锁、轻量级锁和偏向锁之间转换

JAVA对象结构-MarkWord

Java对象结构与锁实现原理及MarkWord详解
https://blog.csdn.net/scdn_cp/article/details/86491792


举报

相关推荐

0 条评论