欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中的BlockingQueue接口源碼解析

 更新時(shí)間:2023年11月01日 10:44:07   作者:興趣使然的程序猿  
這篇文章主要介紹了Java中的BlockingQueue接口源碼解析,BlockingQueue接口表示阻塞隊(duì)列,是Java并發(fā)包中阻塞隊(duì)列的接口定義規(guī)范,阻塞隊(duì)列意味著對(duì)于該隊(duì)列的操作是線程安全的,當(dāng)多個(gè)線程存放元素進(jìn)入隊(duì)列或者從隊(duì)列中取出元素都是線程安全的,需要的朋友可以參考下

BlockingQueue

BlockingQueue接口表示阻塞隊(duì)列,是Java并發(fā)包中阻塞隊(duì)列的接口定義規(guī)范,阻塞隊(duì)列意味著對(duì)于該隊(duì)列的操作是線程安全的,當(dāng)多個(gè)線程存放元素進(jìn)入隊(duì)列或者從隊(duì)列中取出元素都是線程安全的。阻塞隊(duì)列的操作和普通隊(duì)列沒(méi)有區(qū)別,主要是加了線程安全控制,其工作原理如下圖。

在這里插入圖片描述

1 BlockingQueue接口繼承關(guān)系

BlockingQueue是繼承自java集合框架中的Queue接口。

在這里插入圖片描述

2 BlockingQueue接口源碼

可以看到BlockingQueue繼承自Queue接口,Queue接口也順便復(fù)習(xí)下,關(guān)于集合框架隊(duì)列的講述可以在筆者集合篇.中找到。

public interface BlockingQueue<E> extends Queue<E> {
	//隊(duì)列中添加元素的方法
    boolean add(E e);
    boolean offer(E e);
    void put(E e) throws InterruptedException;
    boolean offer(E e, long timeout, TimeUnit unit)
        throws InterruptedException;
    //取出元素    
    E take() throws InterruptedException;
    E poll(long timeout, TimeUnit unit)
        throws InterruptedException;
    boolean remove(Object o);
    //
    int remainingCapacity();
    public boolean contains(Object o);
    int drainTo(Collection<? super E> c);
    int drainTo(Collection<? super E> c, int maxElements);
}

drainTo(Collection<? super E> c)方法表示將隊(duì)列元素全部移除并且放入集合c中,該方法相當(dāng)于隊(duì)列全部彈出。

public interface Queue<E> extends Collection<E> {
    /**
     * 添加元素,和offer方法不同的是add方法可能拋出隊(duì)列狀態(tài)異常
     */
    boolean add(E e);
    /**
     * 添加元素
     */
    boolean offer(E e);
    /**
     * 和poll()方法相同也是取出頭部元素,區(qū)別在于隊(duì)列為空拋出異常
     */
    E remove();
    /**
     * 頭部取出元素
     */
    E poll();
    /**
     *  和peek()方法相同,獲取隊(duì)列頭部元素,區(qū)別在于當(dāng)隊(duì)列為空會(huì)拋出異常
     */
    E element();
    /**
     * 獲取隊(duì)列頭部元素,不對(duì)隊(duì)列進(jìn)行修改
     */
    E peek();
}

BlockingQueue的offer,poll方法實(shí)現(xiàn)了重載,可設(shè)置等待時(shí)間,其余相關(guān)操作概率完全一樣。

到此這篇關(guān)于Java中的BlockingQueue接口源碼解析的文章就介紹到這了,更多相關(guān)BlockingQueue接口源碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java阻塞延遲隊(duì)列DelayQueue原理及使用詳解

    Java阻塞延遲隊(duì)列DelayQueue原理及使用詳解

    這篇文章主要介紹了Java阻塞延遲隊(duì)列DelayQueue原理及使用詳解,阻塞隊(duì)列是一個(gè)支持兩個(gè)附加操作的隊(duì)列,這兩個(gè)附加的操作是:在隊(duì)列為空時(shí),從隊(duì)列中獲取元素的消費(fèi)者線程會(huì)一直等待直到隊(duì)列變?yōu)榉强?需要的朋友可以參考下
    2023-12-12
  • Springboot-注解-操作日志的實(shí)現(xiàn)方式

    Springboot-注解-操作日志的實(shí)現(xiàn)方式

    這篇文章主要介紹了Springboot-注解-操作日志的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • 淺談mybatis-plus批量保存異常及效率優(yōu)化

    淺談mybatis-plus批量保存異常及效率優(yōu)化

    本文主要介紹了mybatis-plus批量保存異常及效率優(yōu)化,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • Springboot實(shí)現(xiàn)圖片上傳功能的示例代碼

    Springboot實(shí)現(xiàn)圖片上傳功能的示例代碼

    本篇文章主要介紹了SpringBoot如何實(shí)現(xiàn)圖片上傳功能,文中通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2022-09-09
  • Spring注解和同步鎖不能同步問(wèn)題解決

    Spring注解和同步鎖不能同步問(wèn)題解決

    這篇文章主要介紹了Spring注解和同步鎖不能同步問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Java調(diào)用Shell命令和腳本的實(shí)現(xiàn)

    Java調(diào)用Shell命令和腳本的實(shí)現(xiàn)

    這篇文章主要介紹了Java調(diào)用Shell命令和腳本的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • springMvc注解之@ResponseBody和@RequestBody詳解

    springMvc注解之@ResponseBody和@RequestBody詳解

    本篇文章主要介紹了springMvc注解之@ResponseBody和@RequestBody詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • JAVA?拷貝文件的幾種方式小結(jié)

    JAVA?拷貝文件的幾種方式小結(jié)

    本文主要介紹了JAVA拷貝文件的幾種方式,包含普通拷貝,mmap內(nèi)存映射的方式拷貝,零拷貝sendFile方式實(shí)現(xiàn)和多線程的方式實(shí)現(xiàn)拷貝,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • 深入理解java中i++和++i的區(qū)別

    深入理解java中i++和++i的區(qū)別

    下面小編就為大家?guī)?lái)一篇深入理解java中i++和++i的區(qū)別。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-12-12
  • MyBatis實(shí)現(xiàn)字段加解密的實(shí)踐

    MyBatis實(shí)現(xiàn)字段加解密的實(shí)踐

    為了數(shù)據(jù)安全問(wèn)題,有時(shí)候需要將部分敏感字段加密后再入庫(kù),本文主要介紹了MyBatis實(shí)現(xiàn)字段加解密的實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11

最新評(píng)論