volatile关键字的应用

January 7, 2010 – 11:22 pm

要使 volatile 变量提供理想的线程安全,必须同时满足下面两个条件:

  • 对变量的写操作不依赖于当前值。
  • 该变量没有包含在具有其他变量的不变式中。

第一条就限制了我们不能用volatile来保证类似x++操作的原子性

第二条限制了我们不能用volatile来保证类似x>y操作的原子性

结论:volatile只能保证可见性,不能保证其原子性

Post a Comment