0
我不知道Java中的線程。我想知道是什麼在此代碼發生,因爲每次運行時,它會產生一個不同的輸出:爲什麼下面的Java代碼每次都有不同的輸出?
public class TwoThreadsDemo{
public static void main(String[] args)
{
new SimpleThread("Java Programmer").start();
new SimpleThread("Java Programmer").start();
}
}
class SimpleThread extends Thread{
public SimpleThread(String str)
{
super(str);
}
public void run()
{
for (int i=0;i<10;i++)
{
System.out.println(i + " " + getName());
try
{
sleep((long)(Math.random()*1000));
}
catch(InterruptedException e)
{
}
}
System.out.println("Done!" + getName());
}
}
我明白了。所以在此期間,第二個線程開始運行,然後再次執行睡眠。第一個線程從之前的地方繼續。那是怎麼回事?請解釋 – 2010-03-14 08:46:53