我有三种方法都可以访问文件夹中的相同文件。
我使用PersistenceStrategy com.thoughtworks.xstream.persistence.XmlArrayList
事情是许多线程可以使用四种方法中的任何一种进行写入,读取和删除 女巫都是同步的。 synchronized不会从一个方法停止READ 在另一种方法中与WRITE冲突,因为两种方法都是单独同步的。
我在考虑是否将它们全部放在一个类中并以某种方式在类上同步?
有什么想法吗?
答案 0 :(得分:4)
在MyClass.class实例上进行同步是可以接受的,但在许多情况下,最好使用私有锁而不是可以从外部访问的东西。因此,您可以创建一个私有final(静态,如果需要)实例并锁定同步块中的实例。
private final Object lock = new Object();