摘要:        
在很多需要高性能的场合下,锁的设计一直是一个比较关键的问题。无锁队列、读写锁分离的队列在业界以及学术界都已经有很成熟的研究。在网上也有很多资料,但其实有很多实现都是错误的。最近在工作中帮忙追查一个线上问题时,就发现实现一个正确的版本是比较困难的事情。 背景:实现一个循环队列,队列长度已预先分配。支持不同线程的多写多读。 原本的实现是对读和写分别使用了两个不同的锁来提升性能,但是在最早实现的时候并没有发现到线程间数据的同步修改会造成小概率读取脏数据导致线上服务有问题。 1 size_t Queue::pop(int &value) 2 { 3 AutoLock lock(_p...    阅读全文
    
			posted @ 2011-11-05 13:49
ljhliang
阅读(731)
评论(0)
推荐(0)
 
                    
                 
 浙公网安备 33010602011771号
浙公网安备 33010602011771号