zoukankan      html  css  js  c++  java
  • Queue(队列)接口

    Queue(队列)接口

    表示Collection的子接口,表示队列FIFO(First In First Out)先进先出

    常用方法:

    ​ 抛出异常:

    ​ boolean add(E e) - 顺序添加一个元素(到达上限后,再添加则会抛出异常 )

    ​ E remove() - 获得第一个元素并移除(如果队列没有元素时,则抛出异常)

    ​ E element() - 获得第一个元素但不移除(如果队列没有元素时,则抛出异常)

    ​ 返回特殊值:推荐使用

    ​ boolean offer(E e) - 顺序添加一个元素(到达上限后,再添加则会返回false)

    ​ E pool() - 获得第一个元素并移除(如果队列没有元素时,则返回null)

    ​ E peek() - 获得第一个元素但不移除(如果队列没有元素时,则返回null)

    ConcurrentLinkedQueue

    线程安全、可高效读写的队列,高并发下性能最好的队列。

    无锁、CAS比较交换算法,修改的方法包含三个核心参数(V,E,N)

    ​ V:要更新的变量、 E:预期值、 N:新值

    Queue<String> queue = new ConcurrentLinkedQueue<String>();
    queue.offer("Hello");	//插入
    queue.offer("World");	//插入
    queue.poll();	//删除Hello
    queue.peek();	//获得World
    

    BlockingQueue接口(阻塞队列)

    Queue的子接口,阻塞队列,增加了两个线程状态为无限期等待的方法。

    方法:

    void put(E e) - 将指定元素插入此队列中,如果没有可用空间,则等待

    E take() - 获取并移除此队列头部元素,如果没有可用元素,则等待。

    ArrayBlockingQueue:

    数组结构实现,有界队列

    没写完,抽空给补上

  • 相关阅读:
    HDU 2544 (Djikstra)
    HDU 1237(表达式求值)
    HDU1690 (Floyd)
    《大道至简》读后感
    第6周总结
    第8周总结
    第7周总结
    第四周总结
    第5周总结
    java程序
  • 原文地址:https://www.cnblogs.com/MonkeySun/p/13347193.html
Copyright © 2011-2022 走看看