Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我已经使用 C++11 几个月了,我一直在享受 C++11 标准库的大多数组件,除了原子操作相关的组件。
在我看来,无锁编程太复杂而无法正确使用,而基于锁的编程直观且易于理解和遵循。所以,我不得不考虑无锁编程的价值。
要完全理解无锁编程和基于锁的编程,我想知道:
无锁编程和基于锁编程的优缺点是什么?
显然,无锁编程很难做到正确。但是,如果其他人已经完成了以无锁方式运行的操作(例如队列、列表、向量等),那么使用它显然是一件好事。
锁总是会让事情变得更慢——因为你必须获得锁,然后在某些共享对象上执行你需要做的操作,然后释放锁——它不可避免地比使用正确的“无锁”操作来做同样的事情花费更长的时间.