[转载]Java 理论与实践: 正确使用 Volatile 变量
与锁相比,Volatile 变量是一种非常简单但同时又非常脆弱的同步机制,它在某些情况下将提供优于锁的性能和伸缩性。如果严格遵循 volatile 的使用条件 —— 即变量真正独立于其他变量和自己以前的值 —— 在某些情况下可以使用?volatile
代替?synchronized
?来简化代码。然而,使用?volatile
?的代码往往比使用锁的代码更加容易出错。本文介绍的模式涵盖了可以使用?volatile
?代替?synchronized
?的最常见的一些用例。遵循这些模式(注意使用时不要超过各自的限制)可以帮助您安全地实现大多数用例,使用 volatile 变量获得更佳性能。
?