【发布时间】:2012-05-28 08:24:01
【问题描述】:
我正在做一个项目,但我没有得到这部分:
使用两个线程对 ArrayList 进行排序。每个线程都会有一种 名单的一半。主线程将等待两个线程完成, 然后他将负责合并两个列表中的两个列表 其他线程。最后,我们将有一个排序列表。将两者合并 列表不应该是那种传统的方式。
我在class ListePersonne 中尝试这样,这个类对ArrayList 进行排序:
Thread T1 = new ListePersonne( mylist.subList(0, unique.size()/2));
Thread T2 = new ListePersonne(mylist.subList(unique.size()/2, unique.size()) );
T1.start();
T2.start();
但结果我只完成了第一部分,但没有完成第二部分
【问题讨论】:
-
您是否等待线程完成?
-
如果是合并你不明白,看这个合并排序算法:en.wikipedia.org/wiki/Merge_sort
-
您没有提供足够的代码/信息来诊断。在合并列表部分之前,您必须在两个线程上
join,这是一回事。 -
@user1417996 请提供整个源代码,您如何处理结果、合并列表等
标签: java multithreading sorting arraylist