我有一个读取器类,可以从共享列表中读取数据。
public class Reader {
private List<String> list;
public ListReader(List<String> list) {
this.list = list;
}
public void read() {
//reading logic
}
}
我还有一个班级,负责将数据写入列表。
public class Writer< {
private List<String> list;
public ListWriter(List<String> list) {
this.list = list;
}
public void writeNextValue(String val) {
// writing logic
}
}
我还有一个类,用相同的List对象实例化Reader和Writer类。
public class Demo {
public static void main (String ... args){
List<String> myList= new ArrayList<>();
Reader reader= new Reader(mylist);
Writer writer = new Writer (mylist);
// multiple reads and write statements using different threads
}
}
现在如何同步以上多个读/写操作? 我希望一次只能有一个线程可以写入数据,但是多个线程应该能够读取列表数据。