/**
* 1、标记当前执行到的队列顺序
*/
public static volatile Integer flag = 1;
private Integer currentFlag = 1;
private String name = null;
public Test5(Integer currentFlag,String name) {
this.currentFlag=currentFlag;
this.name=name;
}
@Override
public void run()
{
while(currentFlag != flag) {
}
System.out.println(name);
flag++;
}
public synchronized void out(String outStr)
{
System.out.println(outStr);
}
public static void main(String[] args) {
Thread t1 = new Thread(new Test5(1,"t1"));
Thread t2 = new Thread(new Test5(2,"t2"));
Thread t3 = new Thread(new Test5(3,"t3"));
Thread t4 = new Thread(new Test5(4,"t4"));
Thread t5 = new Thread(new Test5(5,"t5"));
t1.start();t2.start();t3.start();t4.start();t5.start();
}