gpt4 book ai didi

java - 关于单例的多线程

转载 作者:行者123 更新时间:2023-11-30 06:16:26 25 4
gpt4 key购买 nike

我使用单例读取配置:

Class Property {
private String username;
private String password;
private static Property props;

public String getUsername() {
return username;
}
public String getPassword() {
return password;
}

public static Property getInstance() {
if(props == null) {
synchronized(Property.class) {
props = new Property();
props.initial();
}
}
return props;
}

public void initial() {
Properties prop = new Properties();
prop.load(new FileInputStream(new File("application.properties")));
username = prop.getProperty("username");
password = prop.getProperty("password");
}
}

然后,在第一个线程中,我得到了一个 Property 的实例,比如 props = Property.getInstance

我这样调用方法 getUsername()getPassword():

props.getUsername()/props.getPassword()

但是,这两个方法返回null。在第二个线程和之后的线程中,我可以通过这两种方法获取用户名和密码。

我不知道为什么会这样。谁能帮我解决这个问题?

最佳答案

initial() 方法中将静态 props 更改为 prop

public void initial() {
Properties prop = new Properties();
prop.load(new FileInputStream(new File("application.properties")));
username = prop.getProperty("username");
password = prop.getProperty("password");
}

关于java - 关于单例的多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27377595/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com