Cura读写锁机制:写锁释放后加锁流程.pdfVIP

  • 0
  • 0
  • 约小于1千字
  • 约 1页
  • 2026-07-09 发布于广东
  • 举报

Cura读写锁机制:写锁释放后加锁流程.pdf

《084_Curator读写锁在写锁释放后是如何继续加锁的?》

[写锁,读锁,读锁]

假设是另外一个锁列表:[读锁,读锁,写锁,读锁,读锁,写锁]

如何判断自己有没有获取到锁,如果没有获取到锁对哪个节点进行

写锁:自己如果是第一个就获取了写锁;如果没有获取到锁对前一个节点加

读锁:读锁的位置排在第一个写锁的前面,就可以获取读锁;如果没有获取到读锁,第

一个写锁

4个读锁了第一个写锁,第二个写锁也了第一个写锁

此时第一个写锁释放锁了,4个读锁和第二个写锁都会收到

原先排在第二位的写锁,此时成了排在第一位的写锁,他会发现自己的indexmaxLeases,

所以此时他发现自己排在第一位,就可以获取写锁了;此时有4个读锁发现自己还是在第一

个写锁后面,获取读锁都失败

4把读锁都会此时的第一个写锁

此时他们计算出来,第一个写锁的位置是2,此时对于前面2个读锁,会发现自己排在第一

个写锁前面,获取读锁成功了,后2个读锁发现自己再第一个写锁,获取读锁失败,继

续等待,会在列表中位置=2的第一个写锁

前2个读锁都释放,位置=2的写锁排在第一位,获取写锁

写锁释放,后两个读锁获得,第一个写锁的位置是Integer.MAX_VALUE

最后两个读锁

文档评论(0)

1亿VIP精品文档

相关文档