介绍 通常在一个多线程环境下,我们需要共享某些数据,但为了避免竞争条件引致数据出现不一致的情况,某些代码段需要变成原子操作去执行.这时,我们便需要利用各种同步机制如互斥(Mutex)去为这些代码段加锁,让某一线程可以独占共享数据,避免竞争条件,确保数据一致性.但可惜的是,这属于阻塞性同步,所有其他线程唯一可以做的就是等待.基于锁(Lock based)的多线程设计更可能引发死锁.优先级倒置.饥饿等情况,令到一些线程无法继续其进度. 锁无关(Lock free)算法,顾名思义,即不牵涉锁的使用.这…