Cache ping-pong
摘要:
CacheCPU为了更快速度读取数据,都会用到Cache,因为直接访问RAM速度会比较慢。现代的CPU架构都会支持多级Cache,有单核独享的cache,也有多核共享的cache。这样做读取速度是快了,但是在并发编程时就会遇到问题,如果任何一个核对数据有写操作,如何保证所有core都能及时看到新的数据?考虑如下程序:1 std::atomic counter{0};2 3 void thread_func(void)4 {5 counter++; 6 }如果两个线程在两个核上并发执行这个函数,会怎么样?如果每个core都使用自己cache中的counter值(初始值为0,所以两个c... 阅读全文
posted @ 2014-01-18 01:42 facile 阅读(3690) 评论(0) 推荐(1)
浙公网安备 33010602011771号