Tho*_*ser 7 algorithm stack multithreading lockless data-structures
我有一个问题,需要我使用高度并发,无等待的堆栈实现.我必须事先预先分配所有内存(没有垃圾收集或mallocs),并且堆栈的大小是可接受的(如果堆栈满,则push可能返回false).
我熟悉Nir Shavit的堆栈实现:http://citeseerx.ist.psu.edu/viewdoc/summary?doi = 10.1.1.156.8728 ......但这依赖于链表和垃圾收集.我需要一些基于数组的东西.
看起来ACM上有一个:http://dl.acm.org/citation.cfm? id = 1532611虽然我对低下载速率和引用持怀疑态度.
理想的答案是参考代码(在C/C++中)我可以简单地窃取:-)
小智 1
您看过 Windows DDI InterlockedPushEntrySList() 和 InterlockedPopEntrySList() 吗?它们不是基于数组的,但它们是无锁的,并使用处理器原子指令在堆栈中添加和删除项目。它不是免费的,但也许它对你有用......
归档时间: |
|
查看次数: |
620 次 |
最近记录: |