代码拉取完成,页面将自动刷新
8
双重校验锁问题
已合并
您好,我在使用工具分析jfinal_cms项目时发现一处问题 在文件JedisClient.java第30行处
public static JedisClient getInstance() {
if (instance == null) {
synchronized (JedisClient.class) {
if (instance == null) {
String password = Config.getStr("redis.password");
password = StrUtils.isEmpty(password) ? null : password;
instance = new JedisClient(Config.getStr("redis.host"), Config.getToInt("redis.port"),
Config.getToInt("redis.maxIdel"), Config.getToInt("redis.maxWait"),
Config.getToInt("redis.poolTimeWait"), password);
}
}
}
return instance;
}
由于instance没有使用volatile修饰,一些情况下instance会存在重复初始化的问题
详情可以参考
http://ifeve.com/double-checked-locking-with-delay-initialization/