首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >除锁定(自旋锁、sempahore)之外的同步机制

除锁定(自旋锁、sempahore)之外的同步机制
EN

Stack Overflow用户
提问于 2014-08-01 05:45:46
回答 1查看 108关注 0票数 0

我知道在c中同步有几种机制,像自旋锁,信号量,seq_lock,条件变量等等,每种机制都有它的优缺点,以及什么时候使用取决于情况。

但是上面的每一种同步机制都会给程序增加一些额外的处理。

这是一个面试问题:除了锁定同步之外,还有其他方法吗?我说过我们可以使用障碍或我们自己的wait_queue,但这可能只在某些情况下有用,在某些情况下可能不是在1或2中。

那么,除了锁定(自旋锁、信号量)之外,还有什么机制可以实现同步吗?

EN

回答 1

Stack Overflow用户

发布于 2014-08-01 10:57:53

在内核中,锁的开销很大。除了上述功能之外,还有RCU: Read-Copy-Update,它将更新和回收信息分开,其中读取器和写入器都可以避免完全锁定。

它不是上述方法的完全替代,因为它取决于您尝试序列化的内容。您还可以考虑使用每个cpu的数据结构并避免全局昂贵的锁,这仍然需要与ISR同步,同时必须禁用抢占。忘记在位和整数上添加原子操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25069463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档