摘要: 在很多需要高性能的场合下,锁的设计一直是一个比较关键的问题。无锁队列、读写锁分离的队列在业界以及学术界都已经有很成熟的研究。在网上也有很多资料,但其实有很多实现都是错误的。最近在工作中帮忙追查一个线上问题时,就发现实现一个正确的版本是比较困难的事情。 背景:实现一个循环队列,队列长度已预先分配。支持不同线程的多写多读。 原本的实现是对读和写分别使用了两个不同的锁来提升性能,但是在最早实现的时候并没有发现到线程间数据的同步修改会造成小概率读取脏数据导致线上服务有问题。 1 size_t Queue::pop(int &value) 2 { 3 AutoLock lock(_p... 阅读全文
posted @ 2011-11-05 13:49 ljhliang 阅读(731) 评论(0) 推荐(0)
摘要: #include <stdio.h>#include <string.h>#include <unistd.h>#include <stdint.h>#include <netinet/tcp.h>#include <my_net.h>#include <event.h>#define TRACE_INT(v,fmt,args...) do {\ if(v < 0) {\ fprintf(stderr,fmt"\n",##args);\ return -1;\ }\}while(0)# 阅读全文
posted @ 2011-10-28 22:04 ljhliang 阅读(549) 评论(0) 推荐(0)
摘要: 不知不觉已经工作一年多了。在一年以来感觉生活的并没有太大规律,生活质量也过得极其糟糕。很多问题也是在于自身:一方面是 缺乏目标性,往往不清楚自己想要的是什么,总是很麻木的在做一些东西,寻找一种虚无的充实感。这样的状态导致工作上没有太多的激情和目标,生活也是一复一日。另一方面是 缺乏行动力。很多东西都是一拖再拖,小的事情积累起来导致恶性循环,计划总是没有完成,造成很被动的状态。行动力的缺乏导致自己有时候也很难集中精力去做一件事情,或者说认真去达成一个目标。其实这两方面的缺点自己一直都有,无论是高中抑或大学都被这两方面影响了不少(无论是丧失机会还是不如人意),有时候很想去改变,却总是改变不了... 阅读全文
posted @ 2011-10-04 12:07 ljhliang 阅读(143) 评论(0) 推荐(0)
摘要: 最近发点时间阅读了memcache的源码 阅读全文
posted @ 2011-10-02 23:34 ljhliang 阅读(115) 评论(0) 推荐(0)