為什么和老師代碼一樣輸出結果卻亂序的
這和不同機器的時鐘周期數有關嗎,或者是開發環境?我用的是myeclipse JDK1.6
public?class?Actor?extends?Thread?{
public?void?run()?{
int?count?=?0;
boolean?keepRunning?=?true;
System.out.println(getName()?+?"是一個演員");
while?(keepRunning)?{
System.out.println(getName()?+?"登臺演出:?"?+?(++count));
if?(count?==?100)?{
keepRunning=false;
}
if(count%10==0){
try?{
Thread.sleep(1000);
}?catch?(InterruptedException?e)?{
e.printStackTrace();
}
}
}
System.out.println(getName()?+?"演出結束");
}
public?static?void?main(String[]?args)?{
Actor?actor?=?new?Actor();
actor.setName("Mr.Thread");
actor.start();
Thread?actress=new?Thread(new?Actress(),"Ms.Runnble");
actress.start();
}
}
class?Actress?implements?Runnable{
@Override
public?void?run()?{
//?TODO?Auto-generated?method?stub
int?count?=?0;
boolean?keepRunning?=?true;
System.out.println(Thread.currentThread().getName()?+?"是一個演員");
while?(keepRunning)?{
System.out.println(Thread.currentThread().getName()?+?"登臺演出:?"?+?(++count));
if?(count?==?100)?{
keepRunning=false;
}
if(count%10==0){
try?{
Thread.sleep(1000);
}?catch?(InterruptedException?e)?{
e.printStackTrace();
}
}
}
System.out.println(Thread.currentThread().getName()?+?"演出結束");
}
}
2017-04-21
線程的結果動態性