线程池任务未全部完成问题排查求助
多线程线程池测试程序异常问题
此前几乎未接触过多线程编程,近期因Vulkan开发开始涉及,对该领域并不熟悉。我编写了一个小型测试程序,预期是并行运行4个任务,全部完成后打印结果。
但问题是:
- 有时并非所有任务都会设置Done标志
- 更糟的是,有时甚至不会触发断言,主线程会继续执行并超时
凭借有限的多线程知识,我完全找不到问题原因,推测可能是低级错误。我尝试过以下方法,但结果均一致:
- 使用原子变量作为标志
- 添加
volatile关键字(怀疑编译器优化) - 引入互斥锁
- 使用信号量
补充说明:主要在x64 Windows + VS2022环境下测试,Linux + GCC环境下也有类似问题。
内容的提问来源于stack exchange,提问作者Seishuku
相关产品推荐
相关产品推荐

