<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### 阻塞隊列 特性: * 阻塞隊列提供可阻塞的put和take方法,支持定時offer和poll方法; * 如果阻塞隊列已滿,put方法將阻塞直到有空間可用; * 如果隊列為空,take方法將會阻塞直到有元素可用; * 隊列可用是有界也可以是無界,無界隊列永遠不會滿,因此無界隊列上的put方法也永遠不會阻塞; 阻塞隊列支持生產者——消費者模式 ``` public interface BlockingQueue<E> extends Queue<E> {} ``` ![](https://img.kancloud.cn/55/20/552079019cb6d2f34edb95dc56f28c37_721x79.png) LinkedBlockingQueue和ArrayBlockingQueue是FIFO隊列; PriorityBlockingQueue是一個按優先級排序的隊列,當希望按照某種順序而不是FIFO來處理元素時可以使用PriorityBlockingQueue; BlockingQueue的核心方法有: * boolean add\(E e\),把e添加到BlockingQueue里。如果BlockingQueue可以容納,則返回true,否則拋出異常。 * boolean offer\(E e\),表示如果可能的話,將e加到BlockingQueue里,即如果BlockingQueue可以容納,則返回true,否則返回false。 * void put\(E e\),把e添加到BlockingQueue里,如果BlockQueue沒有空間則調用此方法的線程被阻塞直到BlockingQueue里面有空間再繼續。 * E poll\(long timeout, TimeUnit unit\),取走BlockingQueue里排在首位的對象,若不能立即取出,則可以等time參數規定的時間,取不到時返回null。 * E take\(\) ,取走BlockingQueue里排在首位的對象,若BlockingQueue為空,則調用此方法的線程被阻塞直到BlockingQueue有新的數據被加入。 * int drainTo\(Collection&lt;? super E&gt; c\) 和 int drainTo\(Collection&lt;? super E&gt; c, int maxElements\) ,一次性從BlockingQueue獲取所有可用的數據對象(還可以指定獲取數據的個數),通過該方法,可以提升獲取數據效率,不需要多次分批加鎖或釋放鎖 * 注意:BlockingQueue不接受null元素。試圖add、put 或offer 一個null 元素時,某些實現會拋出NullPointerException。null被用作指示poll操作失敗的警戒值 ### 參考資料 * [http://blog.csdn.net/xin\_jmail/article/details/26157971](http://blog.csdn.net/xin_jmail/article/details/26157971)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看