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