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
答案 0 :(得分:2)
没有任何类型的同步,对多个线程的执行顺序(以及指令的交错)都没有期望。
在你的例子中,你可以通过在循环的每次迭代中放置长暂停(Thread.sleep)来获得预期的输出(在技术上仍然不能保证,但实际上是不可避免的)。
答案 1 :(得分:0)
请在代码中提供Thread sleep。它将在两个线程之间并发运行。
System.out.println("counting"+i)
Thread.sleep(500)
请在run方法中插入这些代码.IT可以随心所欲地使用