将getName()换成Thread.currentThread().getName()就对了,不知道为什么呢?
而且貌似进程的执行顺序有变化。。。。求指点
package com.imooc.concurrent; public class Actor extends Thread { public void run() { System.out.println(getName() + "is an actor"); int count = 0; boolean a=true; while (a){ System.out.println(getName() + "show begins" + (++count)); if (count==100) { a=false; } if(count%10==0){ try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } //System.out.println(getName() + "show begins" + (++count)); System.out.println(getName() + "show is over"); } public static void main(String[] args) { //Thread actor = new Actor(); // //actor.setName("Mr.Thread"); Thread actor=new Thread(new Actor(),"Mr.Thread"); actor.start(); Thread actressThread= new Thread(new Actress(),"Ms.Runnable"); actressThread.start(); } } class Actress implements Runnable{ public void run() { System.out.println(Thread.currentThread().getName() + "is an actor"); int count = 0; boolean a=true; while (a){ System.out.println(Thread.currentThread().getName() + "show begins" + (++count)); if (count==100) { a=false; } if(count%10==0){ try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } System.out.println(Thread.currentThread().getName() + "show is over"); } }
大咪