多线程编程时,为了避免锁,有时会采用数据多份copy的方式,但是如果把这些数据放在了同一个cache line里面,性能得不到提高,是因为cache line的false sharing问题,可以看下这篇文章http://software.intel.com/en-us/articles/avoiding-and-identifying-false-sharing-among-threads/
在gcc下对齐的指令为 __attribute__(aligned(64)),可以修饰变量。如果变量用这个指令修饰的话,指针的++操作就不正确了。
更多关于多线程的资料
http://software.intel.com/en-us/articles/intel-guide-for-developing-multithreaded-applications

本文探讨了多线程编程中避免锁的一种方式——数据多份复制,并指出当这些数据位于同一缓存行时会出现性能瓶颈,即缓存行伪共享问题。文章还介绍了如何使用GCC编译器的__attribute__((aligned(64)))指令进行内存对齐以减少该问题的影响。
560

被折叠的 条评论
为什么被折叠?



