并发的集合类

package duoxiancheng;

import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;

public class TestQueue {

    public static void main(String[] args) {
        BlockingQueue<String> queue=new ArrayBlockingQueue<String>(10);
        new Save(queue).start();
        new Get(queue).start();
        new Get(queue).start();
    }

}
class Save extends Thread{
    BlockingQueue<String> queue;
    static Object obj="hello";
    static int i=0;
    public Save(BlockingQueue<String> queue) {
        super();
        this.queue = queue;
    }
    
public void run(){

    while(true){
        try {
            synchronized (obj) {
                queue.put("张飞"+i++);
            }
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

}
class Get extends Thread{
    BlockingQueue<String> queue;

    public Get(BlockingQueue<String> queue) {
        super();
        this.queue = queue;
    }
    
public void run(){
    int i=1;
    while(true){
        
        try {
            System.out.println("队列中的个数是"+queue.size());
            System.out.println(Thread.currentThread().getName()+":"+queue.take());
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
    
}

 

posted @ 2017-05-14 14:32  苏轼的红烧肉  阅读(152)  评论(0编辑  收藏  举报