gpt4 book ai didi

Java线程: Running a simple java thread program output confusion

转载 作者:行者123 更新时间:2023-11-30 03:41:53 24 4
gpt4 key购买 nike

class Runner extends Thread{
public void run(){
for(int i=0;i<5;i++)
{
System.out.println("Counting "+i);
}
}
}
public class App {
public static void main(String args[])
{
Runner runner1=new Runner();
runner1.start();
Runner runner2=new Runner();
runner2.start();
}
}

我刚刚学习了 java 中线程的基础知识。预期输出是:

Counting 0
Counting 0
Counting 1
Counting 1
Counting 2
Counting 2
Counting 3
Counting 3
Counting 4
Counting 4

但是我得到这样的输出似乎无法推理出这一点:

Counting 0
Counting 1
Counting 2
Counting 3
Counting 4
Counting 0
Counting 1
Counting 2
Counting 3
Counting 4

最佳答案

如果没有任何类型的同步,就无法预期多个线程的执行顺序(以及指令的交错)。

在您的示例中,您可以通过在循环的每次迭代中放置长时间暂停(Thread.sleep)来获得预期的输出(技术上仍然无法保证,但实际上是不可避免的)。

关于Java线程: Running a simple java thread program output confusion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26667803/

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