在java中的多线程之间维护相同的同步数组列表

时间:2016-01-24 09:13:14

标签: java arrays multithreading

我正在使用线程作为一个初出茅庐的人。所以我需要一些帮助。

对于某些工作,我需要一个数组列表,该值将由所有线程共享。我想要这样的东西,main()类将在创建线程时为线程提供数组列表。线程将向数组列表添加值,并且线程所做的更改将反映在该数组列表的每个副本中,重要的是,这必须以同步方式完成。

例如,main()类给出了两个线程数组列表。然后第一个线程在数组的第1个插槽上添加了一个值,第二个线程在添加时会看到更改,当它添加时,它将添加到第二个位置。当main将数组列表提供给新线程时,所有先前完成的更改将很容易包含在内,并且它将从第三个或更晚的位置开始添加。另一件事是,一次只能有一个线程进行更改或者应该同步。

我怎样才能在java中这样做?任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

集合框架为同步提供了方便的包装:

        List<TypeOfItem> list = Collections.synchronizedList( new ArrayList<>() );

您可以传递这样的列表,以便通过不同的线程添加,删除,读取等。每次访问都将同步。

相关问题