多線程與高併發-併發容器6_4:ArrayBlockingQueue的實現

package com.inspire.juc.c_025;

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

public class T06_ArrayBlockingQueue {
    static BlockingQueue<String> strs=new ArrayBlockingQueue<>(10);
    static Random r=new Random();

    public static void main(String[] args) throws InterruptedException {
        for(int i=0;i<10;i++){
            strs.put("a"+i);
        }
        //strs.put("aaa");//滿了就會等待,程序阻塞
        //strs.add("aaa");//滿了就會拋出異常
        //strs.offer("aaa");//滿了直接輸出加進來的數組,aaa是加不進來的
        strs.offer("aaa",2, TimeUnit.SECONDS);//如果能加進來,就直接打印輸出,不必等待,如果加不進來,則等待2秒鐘,再打印輸出
        System.out.println(strs);

    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章