
无锁编程
文章平均质量分 90
sahusoft
Coding4Fun
展开
-
无锁编程:最简单例子
场景 假设存在这样一个情况:需要N个线程对一个全局的变量进行M次递增操作。首先想到的常常是,使用互斥量。当然在“无锁”的世界里,还有其它实现方式。话不多说,看代码:测试代码gcc_sync_test.c#include #include #include #define TEST_ROUND 20000#define THREAD_NUM 10#define SYNC#d原创 2013-06-20 21:46:45 · 3217 阅读 · 0 评论 -
无锁编程介绍
H2 { margin-bottom: 0.21cm; }H2.western { font-family: "DejaVu Sans",sans-serif; font-size: 12pt; font-style: normal; }H2.cjk { font-family: "DejaVu Sans"; font-size: 12pt; }H2.ctl { font-family: "Loh翻译 2013-06-30 23:14:18 · 6234 阅读 · 0 评论 -
世界上最简单的无锁哈希表
无锁哈希表(Lock-Free Hash Table )可以提高多线程下的性能表现,但是因为实现一个无锁哈希表本身的复杂度不小。(ps:真正的复杂在于出错之后的调试,因为多线程下的调试本身就很复杂,引入无锁数据结构之后,传统的看堆栈信息和打印log都基本上没有意义了。堆栈中的数据可能被并发访问破坏,而打印log本身可能会改变程序执行时对数据访问的时序。一个比较可行的做法是实现一个无锁版本和一个传转载 2013-11-05 21:23:40 · 2580 阅读 · 0 评论