博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多线程同步的几种方法
阅读量:4581 次
发布时间:2019-06-09

本文共 342 字,大约阅读时间需要 1 分钟。

1. 互斥锁mutex。由于现在的锁都是基于futex,无竞争时并不会切换上下文,效率还不错,最靠谱的方式。

2.读写锁。读多写少的情况下性能优于互斥锁,但也有个问题,大量读锁可能让需要写锁的操作hang住。

3.原子操作。原子操作在硬件上类似锁总线避免多核视图不一致,软件方面C++标准库中有各种memory_order,memory_order选的合适比mutex快。

4.延迟删除。保证真正删除数据时已经没有新的对数据的引用(因此唯一对被删除数据的引用就是正在执行删除的线程中的引用),避免了竞争。

5.RCU,read copy update的简称,了解的不多。

 

转载于:https://www.cnblogs.com/farseeraliens/p/5326523.html

你可能感兴趣的文章
如何辞职
查看>>
SSO 单点登录总结(PHP)
查看>>
Ubuntu16.04下将hadoop2.7.3源代码导入到eclipse neon中
查看>>
朝令夕改的企业不值得留恋
查看>>
springboot踩坑出坑记
查看>>
ovs源码阅读--netlink使用
查看>>
php中引用&的真正理解-变量引用、函数引用、对象引用
查看>>
cmake编译安装mysql 5.6.12
查看>>
第七章学习小结
查看>>
GS LiveMgr心跳管理类
查看>>
设计模式学习笔记(二)之观察者模式、装饰者模式
查看>>
mysql导出数据库和恢复数据库代码
查看>>
走出软件泥潭 第一回 雪上加霜
查看>>
小鸟哥哥博客 For SAE
查看>>
gui编程实践(3)--记事本界面 JMenuBar JMenu
查看>>
App测试方法总结
查看>>
51nod-1228: 序列求和
查看>>
BZOJ1303: [CQOI2009]中位数图
查看>>
2015上海马拉松线上跑感悟-人生如同一场马拉松
查看>>
北航软院2013级C#期末考试部分考题解答
查看>>