无锁编程和基于锁的编程的优缺点是什么?
What're the pros and cons of lock-free programming and lock-based programming?
我已经使用 C++11
几个月了,我一直很喜欢 C++11 标准库的大多数组件,除了那些与原子操作相关的组件。
在我看来,无锁编程太复杂而无法正确处理,而基于锁的编程直观且易于理解和遵循。所以,我必须考虑无锁编程的价值。
为了充分理解无锁编程和基于锁的编程,我想知道:
无锁编程和基于锁的编程的优缺点是什么?
显然,无锁编程可能很难正确。但是,如果其他人做了一些以无锁方式运行的事情(例如队列、列表、向量等),那么使用它显然是一件好事。
锁总是会让事情变慢 - 因为你必须拿起锁,然后对一些共享对象执行你需要做的操作,然后释放锁 - 它不可避免地比使用正确的"无锁"操作做同样的事情花费更长的时间。
相关文章:
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 模板元编程:如何将参数包组合成新的参数包
- Qt Q串行端口未编程设备未关闭
- 模板元编程 - 尝试实现维度分析
- 我是编程新手
- C++编程从外部文本文件定义数组大小
- 了解算法的性能差异(如果以不同的编程语言实现)
- 使用 Gtkmm 以编程方式选择 Gtk::TextView 中的文本
- 如何将可变参数模板转换为多个单个模板?(C++竞争编程调试模板)
- 使用命名空间正确编程
- C++编程:运算符重载中的引用如何工作?
- Arduino 模块化编程与全局和设置
- C++ 运算符修改/元编程策略,用于不那么冗长的语法
- 在没有管理员权限的情况下,在 c++ 中以编程方式将程序添加到启动
- 如何以编程方式将音频从任何录制设备路由到任何播放设备
- 试图修复一个错误,该错误不会让我开始编程其余部分
- C++模板编程设计问题 - 根据输入文件返回不同的类型
- 使用模板元编程展开循环的不同方法的优缺点
- 无锁编程和基于锁的编程的优缺点是什么?