1、从代码实现来看,CLH比MCS要简单得多。
2、从自旋的条件来看,CLH是在前驱节点的属性上自旋,而MCS是在本地属性变量上自旋
3、从链表队列来看,CLH的队列是隐式的,CLHNode并不实际持有下一个节点;MCS的队列是物理存在的。
4、CLH锁释放时只需要改变自己的属性,MCS锁释放则需要改变后继节点的属性
1、从代码实现来看,CLH比MCS要简单得多。
2、从自旋的条件来看,CLH是在前驱节点的属性上自旋,而MCS是在本地属性变量上自旋
3、从链表队列来看,CLH的队列是隐式的,CLHNode并不实际持有下一个节点;MCS的队列是物理存在的。
4、CLH锁释放时只需要改变自己的属性,MCS锁释放则需要改变后继节点的属性