我正在寻找并发堆栈(如 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/