In this paper, we first propose a new liveness requirement for shared objects and data structures, we then give a shared queue algorithm that satisfies this requirement and we prove its correctness. We also implement this algorithm and compare it to a well-known shared queue algorithm that is used in practice. In addition to having a stronger worst-case progress guarantee, our experimental results suggest that, at the cost of a marginal decrease in throughput, our algorithm is significantly fairer, by a natural definition of fairness that we introduce here.
翻译:在本文中,我们首先为共享对象和数据结构提出一个新的生命要求,然后我们给出一个符合这一要求的共享队列算法,我们证明它是正确的。我们还实施了这一算法,并将其与在实践中使用的众所周知的共享队列算法进行比较。 除了更强有力的最坏情况进展保证之外,我们的实验结果表明,以吞吐量略微下降为代价,我们的算法通过我们在这里引入的对公平性的自然定义来大大更公平。