public class Test {
public static void main(String[] args) {
Team a=new Team();
a.enter(1);
a.enter(2);
a.enter(3);
a.enter(4);
a.enter(5);
a.enter(6);
a.enter(7);
a.enter(8);
a.enter(9);
a.enter(10);
MyThread no1=new MyThread(a);
MyThread no2=new MyThread(a);
MyThread no3=new MyThread(a);
MyThread no4=new MyThread(a);
MyThread no5=new MyThread(a);
no1.start();
no2.start();
no3.start();
no4.start();
no5.start();
import java.util.ArrayList;
public class Team {
private ArrayList ex=new ArrayList();
public void enter(Object o) {
ex.add(o);
}
public Object exit() {
return (ex.remove(0));
}
public boolean isempty() {
return ex.isEmpty();
}
}
public class MyThread extends Thread {
private Team queue;
public MyThread(Team queue){
this.queue=queue;
}
public void run(){
synchronized(queue){//加锁
while(!queue.isempty()){
queue.notify();
System.out.println(this.currentThread().getName()+"---"+queue.exit());
try {
queue.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}