8.12常见的锁策略

1.悲观锁和乐观锁

悲观锁:预测场景中,非常容易出现锁冲突.

乐观锁:预测场景中,不太会出现锁冲突.

2.重量级锁和轻量级锁(和1有关联)

重量级锁:加锁开销比较大.

轻量级锁:加锁开销比较小.

开销:时间和占用系统资源.

3.自旋锁和挂起等待锁

自旋锁:轻量级锁的一种实现.在用户态下,通过自旋的方式(while循环)实现类似于加锁的效果.

挂起等待锁:重量级锁的一种实现.通过内核态,借助系统提供的锁机制,当出现锁冲突的时候,会牵扯到内核对于线程的调度,使冲突的线程出现挂起(阻塞等待).

4.读写锁和互斥锁

读写锁:把读操作和写操作的加锁分开了,两个线程读,不会产生锁竞争,两个线程写或者一个读一个写会产生锁竞争.

互斥锁:产生锁竞争.

5.公平锁和非公平锁

公平锁:先来后到.

非公平锁:随机获取,抢占.

6.可从入锁和不可从入锁

可从入锁:同一个线程对同一个对象连续加锁两次,不会出现矛盾.

不可从入锁:同一个线程对同一个对象连续加锁两次,会出现矛盾.

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数九天有一个秘密

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值