c - 多线程数据结构: concurrent stack

标签 c concurrency data-structures

我正在寻找并发堆栈(如 Cilk THE 协议(protocol))的 C 实现,该实现将允许主线程推送和弹出(例如,弹出操作将在堆栈的开头)和远程线程弹出(此弹出操作将位于堆栈末尾),并采取所有预防措施。

如果没有代码,任何实现建议将不胜感激。

谢谢!

最佳答案

我会采用常规堆栈并用互斥体包装推送和弹出函数。

在伪 C 中:

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

添加错误检查和盐调味。

关于c - 多线程数据结构: concurrent stack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3262961/

相关文章:

c - 初始化并打印 const char 指针

c - unsigned int * 代替 int

Java 并发 - 改进读时复制集合

scala - 关于 Future.firstCompletedOf 和 Garbage Collect 机制

java - 支持 boolean 查询的内存数据结构

c++ - 在这个节点定义中,为什么我们在结构体定义之后使用 "Node"?

python - 有理由地运行以下功能的复杂性

c - 如何使用服务器上的 fork 子进程重用打开的客户端连接(TCP/IP 套接字)

c++ - 找到需要的头文件

java - 在 Java 中打印时,错误输出流与标准输出流并发