03 2013 档案
这个时代无锁真的就是无锁吗
摘要:这几天在研究无锁编程的一些事情。这里是内核kfifo(无锁循环队列,主要用于单一读者与单一写者)代码介绍:http://blog.csdn.net/linyt/article/details/5764312代码精妙处原文作者已经解释得十分清楚了,然而,作者略过了这三个函数的介绍 :smp_rmb()smp_wmb()smp_mb()这几个函数用于同步CPU各个核的cache line。是不是太专业了一点,其实我也不太懂硬件方面的东西,但总归要知道cpu是多核的,每个核有自己的cache,读写内存都先通过cache。然后呢,内存只有一个,核有多个,也就是说,同一份数据在内存只有一份,但却可能同时
阅读全文
你的能力得足以应付数据库
摘要:程序员还是熟悉一下数据库为好,今天就被坑了一回:CREATE TABLE `T2` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` char(32) NOT NULL DEFAULT '', PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8;好吧,正常来说,新插入的记录id就应该从1000开始了。然而,在创建完表到正式插入第一条记录之间,你可能发现数据库有需要优化的地方,修改了一下配置,重启mysqld。这个时候,再
阅读全文