多线程中的 ImplicitProducer 的 try_enqueue 可能不会按预期执行
作者: pavel2003创建于 2025年7月8日更新于 2025年7月8日
默认情况下,队列可以存储 1024 个项目。但是,当多个线程在 ImplicitProducer 模式下将数据插入同一个队列时,切换生产者会导致 try_enqueue 在达到 1024 个项目之前失败。原因是切换生产者后,会再次调用 try_get_block_from_initial_pool,导致每个区块在切换发生之前存储的项目数少于 32 个。
内容来源: cameron314/concurrentqueue