如何实现同步?

时间:2019-06-22 06:17:21

标签: java concurrency

我有一个读取器类,可以从共享列表中读取数据。

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   

      }
    }

现在如何同步以上多个读/写操作? 我希望一次只能有一个线程可以写入数据,但是多个线程应该能够读取列表数据。

0 个答案:

没有答案