【问题标题】:Consensus Value共识价值
【发布时间】:2011-03-19 18:38:21
【问题描述】:

在阅读并发编程时,我在 Compare-And-Swap 和 Compare-And-Set 操作中遇到了共识数这个术语。我无法理解这个术语的含义,谁能解释一下??

谢谢!!

【问题讨论】:

标签: multithreading concurrency concurrent-programming compare-and-swap


【解决方案1】:

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

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

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

  • 共识1:正常读/写寄存器。 (即普通变量。)
  • 共识 2:测试和设置(也称为比较和设置)、队列、堆栈等
  • 共识号 2n-2:n 寄存器分配
  • 共识数∞:比较和交换等

【讨论】:

  • @kotlinski 您提到堆栈的共识数为 2。为什么会这样?
猜你喜欢
  • 1970-01-01
  • 2015-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多