自定義消息隊列示例code

消息隊列可食用Queue來實現消息隊列, Queue可以分爲三類:

雙端隊列(Deque): 是Queue的子類也是Queue的補充類,頭部和尾部都支持元素插入和獲取

阻塞隊列:在元素操作時(添加或刪除),如果沒有成功,會阻塞等待執行, eg: 如果 添加元素時,隊列元素已滿,隊列則會阻塞等待直到有空位時再插入

非阻塞隊列: 同阻塞隊列相反,它會直接返回操作的結果,而非阻塞等操作,雙端對列也屬於非阻塞隊列.

/**
 * 自定義消息隊列
 * @author xulihui
 * @date 2020/4/12 18:50
 */
public class CustomQueue {
    // 定義消息隊列
    private static Queue<String> queue = new LinkedList<>();

    //生產者
    private static void producer() {
        // 添加消息
        queue.add("1");
        queue.add("2");
        queue.add("3");
    }

    public  static  void  consumer() {
        while (!queue.isEmpty()) {
            /**
             * Queue 中 remove() 和 poll()都是用來從隊列頭部刪除一個元素。
             * 在隊列元素爲空的情況下,remove() 方法會拋出NoSuchElementException異常,poll() 方法只會返回 null 。
             */
            System.out.println(queue.poll());
        }
    }

    public static void main(String[] args) {
        // 調用生產者
        producer();
        // 調用消費者
        consumer();
    }
}

 

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