gpt4 book ai didi

java - 是否可以使用单个属性文件来管理并发写入?

转载 作者:行者123 更新时间:2023-12-02 06:02:52 25 4
gpt4 key购买 nike

我在我的代码中使用属性,我对多重访问感到好奇。我处于以下情况:

public Class MClass{
private static Properties dicoCategories = new Properties(myPropertyFile);
public void changeProperties(){
// changing properties and updating the file
}
}

MyClass被多次实例化,每次实例都可以修改属性文件.我想我可以使用临时文件和锁来管理这种并发性,但我更愿意使用已经存在的函数。然而,我没有找到。我的问题是:Property 类是否以特殊方式管理并发性,或者是否存在多用户等效方式?

最佳答案

虽然 Properties 文件线程安全的,但如果您使用多次调用修改它,您仍然需要确保线程安全。例如

properties.set(name, value);

是线程安全的,但是

if (properties.get(name) == null)  {
properties.set(name, value);
}

在没有额外保护的情况下不是线程安全的,您应该围绕这些序列进行同步。

从您的问题中不清楚您的真正问题是否是多个进程 访问此属性文件,如果是这样,那么也许文件锁定是合适的。参见 this question/answer了解更多信息。

关于java - 是否可以使用单个属性文件来管理并发写入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17484846/

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