volatile关键字

今天快下班前听到他们正在讨论说某个bug可能是编译器优化导至的bug, 我当时正在忙其他事也就没有参与讨论,下班回来的路上想到了编译器优自然而然就想到了volatile关键字。 随手上百度搜了一下,得到的结论令我大吃一惊,说什么的都有,有说阻止编译器优化,还有说用于多线程并发,还有说影响cpu cache,总之说什么的都有。其他的我不敢说,但是至少编译器级别的优化还达不到cpu cache的层次,毕竟我搞过一段时间的无锁算法的,对cpu的cache原理有一定的了解。 至于真相到底是什么,……