无锁(lock-free)的非阻塞算法:CAS (Compare-And-Swap)

定义

CAS的意思是:当本线程打算修改某个其他线程也可以访问的变量时,并且这个变量的改变和其旧值相关,那么,在修改前进行这样的操作:判断这个变量的当前值是否和本线程存储的其过去值相等,如果相等,就将其修改为新值;否则,就将其过去值修改为当前值,本次尝试修改失败,然后再次尝试修改这个值。

当讨论多线程的时候,就得讨论锁,而CAS是一种乐观锁。所谓乐观锁,就是指,不去锁定数据,而是通过判断来确定是否可以修改这个值。

应用:

Jel­ly­fish

Leave a Reply

Your email address will not be published. Required fields are marked *