volatile与happens-before的关系与内存一致性错误