为什么运行结果与老师不同?
代码与老师一样,但运行结果如下:
并不是每个线程分别演出10次,这是什么原因呢?看了下别的答案好像和电脑的CPU核数有关,但还不是很清楚,有人能比较清楚地介绍下吗?
另外,怎么控制才能和老师的输出结果一样呢?
万分感谢!
以下是我的代码
public class Actor extends Thread { public void run() { System.out.println(getName()+"登台演出了!"); int count=0; boolean keepRunning=true; 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) { Thread actor= new Actor(); actor.setName("Mr. Thread"); actor.start(); Thread actress = new Thread(new Actress(), "Ms. Runnable"); actress.start(); } } class Actress implements Runnable{ public void run() { System.out.println(Thread.currentThread().getName()+"登台演出了!"); int count=0; boolean keepRunning=true; 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()+"的演出结束了"); } }