一般情况下,我们使用 AtomicBoolean 高效并发处理 “只初始化一次” 的功能要求:
private static AtomicBoolean initialized = new AtomicBoolean(false);
public void init()
{
if( initialized.compareAndSet(false, true) )//如果为false,更新为true
{
// 这里放置初始化代码....
}
}
如果没有AtomicBoolean,我们可以使用volatile做如下操作:
public static volatile initialized = false;
public void init()
{
if( initialized == false ){
initialized = true;
// 这里初始化代码....
}
}