如何实现按排序顺序锁定一系列值?

时间:2018-12-22 15:01:31

标签: algorithm concurrency locking sequence systems-programming

我正在尝试编写一种通用锁定算法,该算法允许我锁定排序数组中的一系列连续值。首先,这些可以是互斥锁-因此,两个并发锁必须不重叠。有什么好的,可扩展的算法可以做到这一点? (可扩展〜并发)

一个具体示例可能是锁定文件中一定范围的连续字节以进行写入。

具体: 假设{a_i}是有效序列,对于i = 0到N-1来说是这样的,

  1. a_j < a_k用于所有j,k,使得0 <= j < k < N
  2. lock(a_j, a_k)锁定a_ja_k中的所有元素。
  3. 在保持上述锁定的同时,只有在lock(a_x, a_y)a_x > a_k的情况下,另一个请求a_y < a_j才会成功。

0 个答案:

没有答案