-1

我已经使用 C++11 几个月了,我一直在享受 C++11 标准库的大多数组件,除了原子操作相关的组件。

在我看来,无锁编程太复杂而无法正确使用,而基于锁的编程直观且易于理解和遵循。所以,我不得不考虑无锁编程的价值。

要完全理解无锁编程和基于锁的编程,我想知道:

无锁编程和基于锁编程的优缺点是什么?

4

1 回答 1

2

显然,无锁编程很难做到正确。但是,如果其他人已经完成了以无锁方式运行的操作(例如队列、列表、向量等),那么使用它显然是一件好事。

锁总是会让事情变得更慢——因为你必须获得锁,然后在某些共享对象上执行你需要做的操作,然后释放锁——它不可避免地比使用正确的“无锁”操作来做同样的事情花费更长的时间.

于 2013-01-28T16:42:25.560 回答