Ven*_*tta 1 c++ multithreading stl race-condition
我打算做以下事情:
存储要消耗的预构建对象的双端队列.主线程可能会在这里和那里使用这些对象.我有另一个用于日志记录的垃圾线程和其他不是时间关键但昂贵的东西.当预构建的对象运行不足时,我会在junky线程中重新填充它们.
现在我的问题是,这里会有竞争条件吗?从技术上讲,一个线程正在从前面消耗对象,另一个线程正在将对象推入后面.只要我不让大小降到零,它应该没问题.我唯一关心的是这个双端队列的"大小".它们是否在STL容器中存储整数"大小"变量?应该修改大小变量引入竞争条件?
解决这个问题的最佳方法是什么?我真的不想使用锁,因为主线程性能很关键(我首先预先构建这些对象的原因!)