代码之家  ›  专栏  ›  技术社区  ›  Martin

如何在不使用cas的情况下编写spinlock

  •  0
  • Martin  · 技术社区  · 14 年前

    从一个讨论开始 this question .

    如果没有cas操作,如何编写spinlock呢?

    另一个问题是:

    内存排序模型是这样的,写操作将是原子的(如果两个并发线程同时写入一个内存位置,则结果将是一个或另一个)。平台不支持原子比较和设置操作。

    1 回复  |  直到 14 年前
        1
  •  2
  •   Stephen Denne    14 年前

    维基百科关于 spinlock 说你必须使用 Peterson's algortihm ,它使用另一个标志来指示轮到哪个进程进入临界区(如果需要)。