gpt4 book ai didi

java - 在这个给定的示例中是否存在同步冲突?

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

在我的代码中,我在资源 set 上使用同一资源上另一个同步块(synchronized block)内的同步块(synchronized block)。到目前为止,这并没有给我带来任何问题,但我很好奇:如果有的话,会产生什么后果?这些同步块(synchronized block)会互相冲突吗?

Set<myClass> set = Collections.synchronizedSet(new HashSet<myClass>());

synchronized(set) {
set.add(new myClass());
...
writeSetContentsToFile();
}

public synchronized void writeSetContentsToFile() {
synchronized(set) {
...
}
}

该集合被其他线程连续访问和更改。我同步了writeSetContentsToFile(),因此文件资源不会有任何冲突,并且writeSetContentsToFile()内部有一个同步块(synchronized block),以确保没有在迭代集合时对其进行更改。

最佳答案

This did not cause me any problems so far, but I'm curious: what are the consequences if any?

在某些方面,您回答了自己的问题,它有效,但令人困惑。如果可以的话最好简化代码。您需要查看其余代码以确定这是否可行。

关于java - 在这个给定的示例中是否存在同步冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12727848/

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