/** * add: 无存储空间时会抛出异常 * offer:无空间时返回false * put:无空间时等待 * offer(time,unit)指定的时候过后再返回 *取数据时,当队列无数据时: * take:会阻塞 * poll:立即返回空 * remove:会抛出异常 * element: 不删除队列头数据,但会抛异常 * peek:不删除队列头数据,不抛异常 * remove(Object o) 队列中有多个重复对象时,也只会删除一个 * @param args * @throws ExecutionException * @throws InterruptedException */ public static void main(String[] args) throws ExecutionException, InterruptedException { BlockingQueue<String> cleanIdsQueue = new LinkedBlockingDeque<>(3); // System.out.println(cleanIdsQueue.add("dfd"));; // System.out.println(cleanIdsQueue.offer("000",5,TimeUnit.SECONDS));; // System.out.println(cleanIdsQueue.poll(5,TimeUnit.SECONDS)); System.out.println(cleanIdsQueue.add("d")); System.out.println(cleanIdsQueue.add("d")); System.out.println(cleanIdsQueue.add("f")); System.out.println(cleanIdsQueue.remainingCapacity()+"----------"+cleanIdsQueue.size()); System.out.println(cleanIdsQueue.remove(null)); System.out.println(cleanIdsQueue.remainingCapacity()+"----------"+cleanIdsQueue.size()); System.out.println("==================end"); }
LinkedBlockingDeque记录下取数据与放数据的几个方法区别
于 2023-07-06 14:32:22 首次发布