volatile 关键字

参考:http://baike.baidu.com/link?url=OQu43UIjrDTpdb36fcuAqOzqu9Q-aYE20ZZ8t7kLhxs8pNNBDpe1dUaqvCWCh41P

volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会

使用地方编辑

一般说来,volatile用在如下的几个地方:
1、中断服务程序中修改的供其它程序检测的变量需要加volatile;
2、多任务环境下各任务间共享的标志应该加volatile;
3、存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能有不同意义;
 
同步单例模式的建立: 
private volatile static TimeAxisManagerImpl instance;
private volatile static TimeAxisManagerImpl instance;
private Vector<TimeAxis> mAxis;

private TimeAxisManagerImpl () {
mAxis = new Vector<TimeAxis>(1);
};

public static TimeAxisManagerImpl getInstance () {
if(instance == null) {
synchronized (TimeAxisManagerImpl.class) {
if(instance == null)
instance = new TimeAxisManagerImpl();
}
}
return instance;
}

 

posted on 2014-03-21 10:57  wjw334  阅读(114)  评论(0编辑  收藏  举报

导航