zoukankan      html  css  js  c++  java
  • Queue 阻塞队列 LinkedBlockingQueue

      

      与ArrayBlockingQueue 除了数据存储的结构不同、大小可以不指定之外,其他的都一致 

    package com.dh.learn.queue;
    
    import java.util.concurrent.BlockingQueue;
    import java.util.concurrent.LinkedBlockingQueue;
    
    public class LearnLinkedBlockingQueue {
        // 底层是链表实现的
        // 阻塞方式的实现与ArrayBlockingQueue一致:
        //      ReenTrantLock 保证线程安全
        //      Condition的await() single() 保证队列阻塞
        public static void main(String[] args) throws InterruptedException {
            // 可指定链表大小,不指定时默认是Integer.MAX_VALUE (2的31次方-1)
            BlockingQueue<String> linkedBlockingQueue = new LinkedBlockingQueue<>(2);
            linkedBlockingQueue.put("aaaa");
            linkedBlockingQueue.put("bbbb");
    
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        System.out.println("取值,使队列不满");
                        linkedBlockingQueue.take();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }).start();
            linkedBlockingQueue.put("cccc");
    
            System.out.println(linkedBlockingQueue.toString());
        }
    }
  • 相关阅读:
    Redhat7 安装 yum源(亲测有效)
    Win10开启FTP与配置(完整无错版)
    DataStage中Transformer的函数大全
    缺省值是什么
    扫描线
    2021.07.02笔记-DP
    2021.07.02-2膜你赛
    2021.07.01膜你赛
    2021.06.21模拟赛
    2021.06.09模拟赛
  • 原文地址:https://www.cnblogs.com/han6/p/11275187.html
Copyright © 2011-2022 走看看