以下程序不应该按顺序执行,但它仍在执行。为什么我的多线程程序按顺序执行?
class A extends Thread
{
public void run()
{
for(int i=0; i<=5; i++)
{
System.out.println("Thread A : "+i);
}
System.out.println("exit from A");
}
}
class B extends Thread
{
public void run()
{
for(int j=0; j<=5; j++)
{
System.out.println("Thread B: "+j);
}
System.out.println("exit from B");
}
}
class C extends Thread
{
public void run()
{
for(int k=0; k<=5; k++)
{
System.out.println("Thread C : "+k);
}
System.out.println("exit from C");
}
}
class ThreadCounter
{
public static void main(String arg[])
{
new A().start();
new B().start();
new C().start();
}
}
我得到的输出是:
Thread A start
Thread A : 1
Thread A : 2
Thread A : 3
Thread A : 4
Thread A end
Thread B start
Thread B : 1
Thread B : 2
Thread B : 3
Thread B : 4
Thread B end
Thread C start
Thread C : 1
Thread C : 2
Thread C : 3
Thread C : 4
Thread C end
能否请你告诉我,为什么执行是这样? 是不是执行只在运行时才是连续的
尝试在每个循环的每个迭代中添加'Thread.yield()'或'Thread.sleep'。 – MadProgrammer
可能因为循环很小。把一个睡在一个会做伎俩。 – Shamik
是的,我现在可以通过将循环增加到1000来看到程序的多线程性质,甚至不使用sleep(),wait()等 – Snehal