Atitit.软件与编程语言中的锁机制原理attilax总结

本文深入探讨了软件与编程语言中的锁机制原理,包括锁的基本用途、不同类型如互斥锁、共享锁、乐观锁与悲观锁等,以及其实现方式。详细讲解了Java和C#中的锁机制,并对比了不同锁的特性和应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Atitit.软件与编程语言中的锁机制原理attilax总结

 

1. 用途 Db,业务数据加锁,并发操作加锁。1

2. 锁得类型 排它锁 “互斥锁 共享 乐观锁与悲观锁1

2.1. 自旋锁还是信号量1

2.2. -自动释放还是手动释放1

3. 实现方式,语言方式与库方式1

4. Java的锁机制 Synchronized ReentrantLock AtomicInteger2

5. C# 原理(Monitor类和lock关键词 ReaderWriterLock2

6. Ref参考资料3

 

1. 用途 Db,业务数据加锁,并发操作加

 

2. 锁得类型 排它锁 “互斥锁 共享 乐观锁与悲观锁

2.1. 自旋锁还是信号量

2.2. -自动释放还是手动释放

 

3. 实现方式,语言方式与库方式

Java.util.concurrent.lock 中的Lock 框架是锁定的一个抽象,它允许把锁定的实现作为 Java 类,而不是作为语言的特性来实现。这就为Lock 的多种实现留下了空间,各种实现可能有不同的调度算法、性能特性或者锁定语义。

Reen

 

4. Java的锁机制 Synchronized ReentrantLock AtomicInteger

是基于JVM来保证数据同步的,而Lock则是在硬件层面,依赖特殊的CPU指令实现数据同步的

实际JDK中也是通过一个32bit的整数位进行CAS操作来实现的。

 

需要注意的是,用sychronized修饰的方法或者语句块在代码执行完之后锁自动释放,而是用Lock需要我们手动释放锁,所以为了保证锁最终被释放(发生异常情况)要把互斥区放在try内,释放锁放在finally内!!

 

 Atomic* 开头的类基本原理都是一致的, 都是借助了底层硬件级别的 Lock 来实现原子操作的。 Cas原理

 

5. C# 原理(Monitor类和lock关键词 ReaderWriterLock

C#提供了2种手工控制的

:  Monitor

     这个算是实现锁机制的纯正类,在锁定的临界区中只允许让一个线程访问,其他线程排队等待。主要整理为2组方法。

 

1Monitor.EnterMonitor.Exit

微软很照护我们,给了我们语法糖Lock,对的

 

二:ReaderWriterLock

    先前也知道,Monitor实现的是在读写两种情况的临界区中只可以让一个线程访问,那么如果业务中存在读取密集型操作,就

好比数据库一样,读取的操作永远比写入的操作多。针对这种情况,我们使用Monitor的话很吃亏,不过没关系,ReadWriterLock

就很牛X,因为实现了写入串行读取并行

 

 

6. Ref参考资料

 

 

深入浅出Java并发包—锁机制() - 一线天色 天宇星辰的日志 - 网易博客.html

Java线程】锁机制:synchronizedLockCondition - Alpha's 学习笔记 - 博客频道 - youkuaiyun.com.html

Java常用锁机制简介 - hduhans - 博客园.html

5天不再惧怕多线程——第二天 锁机制 - 一线码农 - 博客园.html

C# 多线程编程之锁的使用【互斥锁(lock)和读写锁(ReadWriteLock)- C#编程语言程序开发技术文章_C#编程 - 红黑联盟.html

锁机制与原子操作 _第四篇_ - 逆心 - 博客园.html

简单的JavaScript互斥锁.html

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 

汉字名:艾提拉(艾龙)   EMAIL:1466519819@qq.com

转载请注明来源: http://blog.youkuaiyun.com/attilax

 

atiend


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值