volatile 的三种典型使用场景是什么?