^..^
+0 《程序员的自我修养》中关于加锁不能保证线程安全的一个错误
Guancheng (G.C.) 发于 2011年04月09日 08:49
| 点击: 2731
| 展开摘要
在《程序员的自我修养 — 链接装载与库》一书第28页“过度优化”这一节中,作者提到了编译器优化可能造成多线程bug的情况(我手中的是09年6月第二次印刷那版)。原文如下:
线程安全是一个非常烫手的山芋,因为即使合理的使用了锁,也不一定能保证线程安全,这是源于落后的编译器技术已经无法满足日益增长的并发需求。很多看似无错的代码在优化和并发前又产生了麻烦。最简单的例子,让我们看看如下代码:
x = 0;
Thread 1 Thread 2
lock
查看全文: http://www.udpwork.com/item/4758.html
线程安全是一个非常烫手的山芋,因为即使合理的使用了锁,也不一定能保证线程安全,这是源于落后的编译器技术已经无法满足日益增长的并发需求。很多看似无错的代码在优化和并发前又产生了麻烦。最简单的例子,让我们看看如下代码:
x = 0;
Thread 1 Thread 2
lock
查看全文: http://www.udpwork.com/item/4758.html