我有一个学校作业,我将使用 Java 中的线程对长名单进行排序。没有关注排序算法的速度,而是理解线程以及线程如何影响排序速度的分配。
我觉得我走在正确的道路上,但是代码/线程弄乱了监视器,我已经尝试了一段时间来定位问题,对我来说问题似乎出在class SortThreads
run()
方法上。各位大神可以给我一些提示或提示吗?
public void run() {
while (monitor.getSize() > 1) {
System.out.println("Number of array in list to be sorted: "
+ monitor.getSize());
String[] f = monitor.getRandom();
String[] g = monitor.getRandom();
monitor.add(descSort(f, g));
}
System.out.println("*** THREAD DEAD ***");
}
输出:
After delete: 1
Number of array in list to be sorted: 3
Befor delete: 1
After delete: 0
Number of array in list to be sorted: 0
Exception in thread "Thread-101" java.lang.NullPointerException
at SortThread.append(Sort.java:222)
at SortThread.descSort(Sort.java:201)
at SortThread.run(Sort.java:178)
Exception in thread "Thread-96" java.lang.NullPointerException
at SortThread.append(Sort.java:222)
at SortThread.descSort(Sort.java:201)
at SortThread.run(Sort.java:178)
Number of array in list to be sorted: 0
Number of array in list to be sorted: 0