父线程a 读队列queue q,子线程b写队列q,不加锁。 a 在iSize=q.size()>10时 pop iSize-10个数据 出队列,处理结束时再pop所有数据。
请问这种机制保证下 会不会存在数据异常,谢谢!
可能会出问题,因为父线程、子线程都可能改变iSize的值
既是STL中的东西,操作加个锁有什么难呢做无锁队列,比给队列加个锁难很多很多
操作同一个东西就要加锁.
有双缓冲队列这个方法可以优化并发性能,写入A队列,读B队列,B队列空则取A队列,A,B有个各自的锁.