大多数'无锁'代码其实不是无锁的
💡
原文中文,约200字,阅读约需1分钟。
📝
内容提要
线程 B 发现线程 A 有未完成的操作时,会协助 A 完成后再执行自己的任务。Michael-Scott 队列的入队操作是一个经典例子,B 会先推进队尾指针,然后尝试入队。
🎯
关键要点
- 线程 B 发现线程 A 有未完成的操作时,会协助 A 完成后再执行自己的任务。
- 实现手段是 helping protocol。
- Michael-Scott 队列的入队操作是一个经典例子。
- 如果发现队尾指针落后,当前线程会先推进队尾指针,再尝试自己的入队。
🏷️
标签
➡️