![]() |
1
11
您可以用最少的困难实现一个有限大小的队列…我最近在想这个设计,但你可能会发现很多其他有趣的想法:(警告:它可能有一些问题!)
您可以同时等待头部和尾部的CAS操作,但是如果队列没有争用,那么您应该第一次成功,没有不必要的锁。 无限大的队列“有点”困难;)但是您应该能够为大多数需求创建足够大的队列。 |
![]() |
2
3
我想关于这个话题有一些有趣的讨论 here ,特别是 this thread. |
![]() |
3
3
您可能想看看Herb-Sutters实现的低锁队列。 http://www.drdobbs.com/hpc-high-performance-computing/211601363 它确实使用C++0X原子,但它应该是(应该是)容易实现与您的特定架构原子OPS(γ-SycC**使用GNU,Maxix* *在Solaris等)。 |
![]() |
5
1
Viraptor解决方案是锁定的,我不知道有多个生产者/多个消费者无锁队列算法。 |
![]() |
Rasim Avcı · 如何履行承诺。解析需要原子化的代码 7 年前 |
![]() |
Lingxi · 真正测试std::atomic是否无锁 7 年前 |
![]() |
Rajeev Mehta · 修改和读取原子变量 7 年前 |
![]() |
Chris Jefferson · 在Rust中获得“无序”语义 7 年前 |
![]() |
Jérôme B · redis自动切换值 7 年前 |
![]() |
krimog · 更新where select,保证原子性 7 年前 |