我最近开始学习多线程。我尝试了以下代码:

class AThread extends Thread {
    int input;

    public AThread(int y) {
        input=y;
    }

    public void compute() {
        System.out.println(input*input);
    }

    public void run() {
        compute();
    }
}

public class ThreadDemo {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        AThread a=new AThread(1);
        AThread b=new AThread(2);
        AThread c=new AThread(3);
        a.start();
        b.start();
        c.start();
    }
}

输出

有时候我得到
4
1
9

但是其他时候
1
9
4

为什么会这样?我还是个菜鸟。请按照我的标准回答。

最佳答案

因为这就是多线程技术:并行处理;除非您手动进行同步,否则未指定线程的相对顺序。
在你的书里。

关于java - 为什么我的多线程Java代码没有给出顺序输出?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22230052/

10-11 08:16