5

在阅读并发编程时,我在 Compare-And-Swap 和 Compare-And-Set 操作中遇到了Consensus Number一词。我很难理解这个术语的含义,谁能解释一下?

谢谢你!!

4

1 回答 1

11

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

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

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

  • 共识1:正常读/写寄存器。(即普通变量。)
  • 共识 2:测试和设置(又名比较和设置)、队列、堆栈等。
  • 共识号 2n-2:n 寄存器分配
  • 共识号∞:比较和交换等。
于 2011-03-19T19:16:33.377 回答