You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lock-Free Queue并发测试异常问题求助(含代码与日志)

Lock-Free Queue 消费计数不匹配及异常日志问题排查

问题背景

基于Maged M. Michael论文中的伪代码,用C语言实现了一个Lock-Free Queue。测试时多数场景运行正常,但偶尔出现消费计数不匹配的问题(例如预期消费100个元素,实际仅消费65个),说明队列中存在未被处理的残留节点。为规避ABA问题,我刻意不释放出队节点,当前仅关注入队/出队节点数不匹配的核心问题。

后续意识到原测试代码中使用producer_done标志作为消费者退出条件存在逻辑缺陷,重写测试代码后问题仍未解决,且从测试日志中发现两个无法解释的异常现象:

  • 线程T48在第一个元素未完成出队的情况下,取出了第二个元素
  • 线程T52的total_items_consumed计数从1回退到2

相关代码与日志

Lock-Free Queue核心实现代码

// 请在此粘贴队列核心实现的C代码

更新后的测试代码

// 请在此粘贴重写后的测试C代码

异常测试日志片段

// 请在此粘贴出现异常的测试日志内容

希望社区能协助排查上述问题的根源。


内容的提问来源于stack exchange,提问作者Anderson Chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 04:22:06