我正在尝试编写一种通用锁定算法,该算法允许我锁定排序数组中的一系列连续值。首先,这些可以是互斥锁-因此,两个并发锁必须不重叠。有什么好的,可扩展的算法可以做到这一点? (可扩展〜并发)
一个具体示例可能是锁定文件中一定范围的连续字节以进行写入。
具体:
假设{a_i}
是有效序列,对于i
= 0到N-1
来说是这样的,
a_j < a_k
用于所有j,k,使得0 <= j < k < N
。lock(a_j, a_k)
锁定a_j
至a_k
中的所有元素。lock(a_x, a_y)
或a_x > a_k
的情况下,另一个请求a_y < a_j
才会成功。