在阅读并发编程时,我在Compare-And-Swap和Compare-And-Set操作中遇到了共识编号。我在理解这个术语的含义时遇到了麻烦,任何人都可以解释吗?

谢谢你!!

最佳答案

共识问题是这样的...您有N个进程。每个线程都会提出一个值,然后线程应决定这些提议值中的一个且相同。

两个线程的示例:线程A建议值A,线程B建议值B。然后,有效的结果是两个线程都决定A,或者两个线程都决定B。

有许多不同的特殊对象或操作可用于解决共识问题。他们的力量由他们的共识数字来分级。这等于他们可以解决共识问题的最大线程数。

  • 共识号1:普通的读/写寄存器。 (即普通变量。)
  • 共识数字2:测试并设置(又称比较并设置),队列,堆栈等。
  • 共识号2n-2:n寄存器分配
  • 共识数∞:比较并交换,等等。
  • 10-07 12:33