在阅读内核源码spin_lock
的实现时,发现有大量关于lock-free编程的知识,如smp_cond_load_relaxed
、atomic_try_cmpxchg_acquire
的实现。延展阅读,发现了这些涉及到memory order、atomic、cache consistency等知识点。经过google,我发现Preshing on Programming这个博客对lock-free的方方面面介绍的较为详细,并且作者将这些知识点在Mintomic(C/C++ lock-free programming API)项目中付诸实践。