在Java中更新多线程共享的列表
我试图创建一个程序,其中整数列表使用多个线程进行排序,所有线程都可以在多个步骤中读取和写入它的特定部分。每个线程都是同一对象的实例,并与列表中同一部分的另一个线程一起工作。我的问题是,每个线程都看不到另一个线程对列表所做的更改,因此列表中的一些初始元素在执行过程中丢失了。有没有一种方法可以刷新或更新列表,以便线程能够更改列表?使用Java8怎么样在Java中更新多线程共享的列表,java,multithreading,Java,Multithreading,我试图创建一个程序,其中整数列表使用多个线程进行排序,所有线程都可以在多个步骤中读取和写入它的特定部分。每个线程都是同一对象的实例,并与列表中同一部分的另一个线程一起工作。我的问题是,每个线程都看不到另一个线程对列表所做的更改,因此列表中的一些初始元素在执行过程中丢失了。有没有一种方法可以刷新或更新列表,以便线程能够更改列表?使用Java8怎么样 List sortedList=List.parallelStream() .已排序() .collect(Collectors.toList());
List sortedList=List.parallelStream()
.已排序()
.collect(Collectors.toList());
我使用的是数组,而不是ArrayList。我试着使列表保持静态,但它没有改变任何东西,向量也没有我想要使用的方法。我还需要做些什么才能让这个列表起作用,还是举个具体的例子?@orestrag97在你的问题中,你清楚地说你在使用“一个整数列表”,现在你说“我在使用数组而不是ArrayList。”-那是什么?数组还是列表?请相应地更新您的问题,以澄清这一点。
List<Integer> sortedList = theList.parallelStream()
.sorted()
.collect(Collectors.toList());