锁,数据同步

本文探讨了数据同步中的四种关键机制:原子操作用于单变量同步,中断控制针对多数据量和单核环境,自旋锁适用于多核场景的短时间锁定,而信号量则解决长时间等待的互斥和唤醒问题。
摘要由CSDN通过智能技术生成


经常遇到数据同步的问题,具体有哪些情况呢?来聊一聊。我知道的,应该有以下四种,原子操作,中断控制,自旋锁和信号量。

原子操作

适用情况和场景

原子操作经常用在单个变量,比如一个整数或者bool变量;
场景:像全局计数器,状态标志变量。

中断控制

适用情况和场景
适用情况,数据量多的时候
场景:关闭/开启中断,单核CPU

自旋锁

适用情况和场景

既然中断操作无法满足所有的情况,自然有一些新的场景,需要新的方法来实现,这就是自旋锁;它适用于多核CPU情况;具体原理呢,请看下图:

请添加图片描述

信号量

适用情况和场景

看过自旋锁,发现其实自旋锁适用于短时间还好,要是长时间等待呢,怎么搞?这就有了信号量。信号量适用长时间等待的情况,它有等待,互斥,唤醒操作。需要的时候,唤醒它,就可以用了。也挺智能的。

小结

四种情况小结

以上就是数据同步的四种情况,适用于不同的场景。原子操作,中断控制,自旋锁,信号量,用到什么,自取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值