小编Sea*_*vis的帖子

使用 Runnable 或 Thread 的 Java 线程问题

我正在尝试使用合并排序来实现多线程。我让它在将数组切成两半的地方创建新线程。
数组的排序取决于:[数组的大小] vs [创建新线程的次数] 例如:如果我让它在大小为 70 的数组上仅创建两个线程,则数组将被排序,但如果我让它创建 6,它将返回未排序的。我认为可能的一件事是线程没有同步,但我使用了 threadName.join()

这是一些代码:merge.java

import java.util.Random;

public class merge implements Runnable {
    int[] list;
    int length;
    int countdown;

    public merge(int size, int[] newList, int numberOfThreadReps, int firstMerge) {
        length = size;
        countdown = numberOfThreadReps;
        list = newList;
        if (firstMerge == 1)
            threadMerge(0, length - 1);
    }

    public void run() {
        threadMerge(0, length - 1);
    }

    public void printList(int[] list, int size) {
        for (int i = 0; i < size; i++) {
            System.out.println(list[i]);
        } …
Run Code Online (Sandbox Code Playgroud)

java multithreading runnable

2
推荐指数
1
解决办法
1310
查看次数

标签 统计

java ×1

multithreading ×1

runnable ×1