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

多线程数据结构:并发堆栈

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

    我正在寻找一个允许主线程推送和弹出(例如,pop操作将在堆栈的开始)的并发堆栈(如cilk协议)和一个远程线程弹出(此pop操作将在堆栈的结尾)的C实现,必须采取一切预防措施。

    如果没有代码,任何实现建议都会受到赞赏。

    谢谢!

    2 回复  |  直到 13 年前
        1
  •  1
  •   nmichaels    14 年前

    我将使用一个常规的堆栈,并用互斥函数包装push和pop函数。

    在PUDEDO-C中:

    void push(void *data)
    {
        acquire_lock(mutex);
        stack_push(data)
        release_lock(mutex);
    }

    添加错误检查和盐来调味。

        2
  •  0
  •   claf    13 年前

    这个 NOBLE 图书馆似乎就是我要找的。