gpt4 book ai didi

Java : Thread Questions

转载 作者:行者123 更新时间:2023-12-01 18:10:14 26 4
gpt4 key购买 nike

我正在努力提高我的 JAVA 水平。现在我有一个关于线程的问题我不明白。

我尝试的代码是这样的,

public class MyThread implements Runnable {
private int end;
private String name;

public MyThread(String name, int end) {
this.end = end;
this.name = name;
}

@Override
public void run() {
for (int i = 0; i < end; i++) {
System.out.println(name + " : " + i);
}
}
}

public class ThreadLesson {
public static void main(String[] args) {
Thread thread1 = new Thread(new MyThread("thread1", 6));
Thread thread2 = new Thread(new MyThread("thread2", 5), "thread2");
thread1.start();
thread2.start();
}
}

类(class)输出为

thread1 : 0
thread2 : 0
thread2 : 1
thread2 : 2
thread1 : 1
thread2 : 3
thread1 : 2
thread2 : 4
thread1 : 3
thread1 : 4
thread1 : 5

我的出局是

Thread1:0
Thread2:0
Thread1:1
Thread1:2
Thread1:3
Thread1:4
Thread1:5
Thread2:1
Thread2:2
Thread2:3
Thread2:4

我的问题是,为什么我的输出不是同一课的输出?有一些问题或者谁写了该类(class),只需编辑输出以使文章更精彩。

最佳答案

在类(class)中的某个地方,这可能是用粗体字母写的。 您不应期望得到与此处所示相同的结果。您已通过传递 2 个不同的可运行对象启动了 2 个线程。如果没有适当的同步,就无法知道输出是什么。

关于Java : Thread Questions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33606963/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com