C++菜鸡关于 C++多线程的疑问

查看 17|回复 0
作者:XIIPanda   
最近看一个关于 C++无锁窃取队列的项目,项目地址为: https://github.com/ConorWilliams/ConcurrentDeque/tree/main ,在项目代码里面 RingBuff 的 store 操作使用了 std::move ,在扩容期间,如果有窃取者线程进行 steal()操作且旧的 RingBuff 的 t 索引的任务已经被移动到新的 RingBuff ,那么窃取者线程获取的任务就是一个已经被移动了的任务,如果 steal()中的_top.compare_exchange_strong(t, t + 1, seq_cst, relaxed)执行成功,是不是就意味着出现了任务丢失的情况?
您需要登录后才可以回帖 登录 | 立即注册

返回顶部