//生产者
public class Producer implements Runnable{
private Bascket bascket ;
private String name ;
public Producer(Bascket bascket ,String name ){
this .bascket =bascket ;
this .name =name ;
}
public void run(){
while (true ){
try {
System. out .println( name+ "produce.." );
bascket.put( new Apple("name" +(int )Math.random()*1000));
} catch (InterruptedException e ) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
Thread. sleep(1000);
} catch (InterruptedException e ) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public class TestDemo {
public static void main(String args[]){
Bascket bascket= new Bascket();
Consumer c1= new Consumer(bascket ,"c1" );
Producer p1= new Producer(bascket ,"p1" );
Producer p2= new Producer(bascket ,"p2" );
//线程池管理
ExecutorService service = Executors. newCachedThreadPool();
service.execute( c1);
service.execute( p1);
service.execute( p2);
}
}
具体Lock的实现机制将会在源代码中加以分析。