blockingqueue.html
来自「j2se5-api-zh,java文档的中文版本」· HTML 代码 · 共 528 行 · 第 1/2 页
HTML
528 行
<TH ALIGN="left"><B>从接口 java.util.<A HREF="../Collection.html" title="java.util 中的接口">Collection</A> 继承的方法</B></TH></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD><CODE><A HREF="../Collection.html#addAll(java.util.Collection)">addAll</A>, <A HREF="../Collection.html#clear()">clear</A>, <A HREF="../Collection.html#contains(java.lang.Object)">contains</A>, <A HREF="../Collection.html#containsAll(java.util.Collection)">containsAll</A>, <A HREF="../Collection.html#equals(java.lang.Object)">equals</A>, <A HREF="../Collection.html#hashCode()">hashCode</A>, <A HREF="../Collection.html#isEmpty()">isEmpty</A>, <A HREF="../Collection.html#iterator()">iterator</A>, <A HREF="../Collection.html#remove(java.lang.Object)">remove</A>, <A HREF="../Collection.html#removeAll(java.util.Collection)">removeAll</A>, <A HREF="../Collection.html#retainAll(java.util.Collection)">retainAll</A>, <A HREF="../Collection.html#size()">size</A>, <A HREF="../Collection.html#toArray()">toArray</A>, <A HREF="../Collection.html#toArray(T[])">toArray</A></CODE></TD></TR></TABLE> <P><!-- ============ METHOD DETAIL ========== --><A NAME="method_detail"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2"><B>方法详细信息</B></FONT></TH></TR></TABLE><A NAME="offer(java.lang.Object)"><!-- --></A><A NAME="offer(E)"><!-- --></A><H3>offer</H3><PRE>boolean <B>offer</B>(<A HREF="BlockingQueue.html" title="BlockingQueue 中的类型参数">E</A> o)</PRE><DL><DD>如果可能的话,将指定元素插入此队列中。当使用那些可能会强行使用插入限制(例如容量限制)的队列时,<tt>offer</tt> 方法通常要优于 <A HREF="../Collection.html#add(E)"><CODE>Collection.add(E)</CODE></A> 方法,后者可能无法插入元素,而只是抛出一个异常。<P><DD><DL><DT><B>指定者:</B><DD>接口 <CODE><A HREF="../Queue.html" title="java.util 中的接口">Queue</A><<A HREF="BlockingQueue.html" title="BlockingQueue 中的类型参数">E</A>></CODE> 中的 <CODE><A HREF="../Queue.html#offer(E)">offer</A></CODE></DL></DD><DD><DL><DT><B>参数:</B><DD><CODE>o</CODE> - 要添加的元素。<DT><B>返回:</B><DD>如果可以将元素添加到此队列中,则返回 <tt>true</tt>,其他情况则返回 <tt>false</tt><DT><B>抛出:</B><DD><CODE><A HREF="../../lang/NullPointerException.html" title="java.lang 中的类">NullPointerException</A></CODE> - 如果指定的元素为 <tt>null</tt></DL></DD></DL><HR><A NAME="offer(java.lang.Object,long,java.util.concurrent.TimeUnit)"><!-- --></A><A NAME="offer(E, long, java.util.concurrent.TimeUnit)"><!-- --></A><H3>offer</H3><PRE>boolean <B>offer</B>(<A HREF="BlockingQueue.html" title="BlockingQueue 中的类型参数">E</A> o, long timeout, <A HREF="TimeUnit.html" title="java.util.concurrent 中的枚举">TimeUnit</A> unit) throws <A HREF="../../lang/InterruptedException.html" title="java.lang 中的类">InterruptedException</A></PRE><DL><DD>将指定的元素插入此队列中,如果没有可用空间,将等待指定的等待时间(如果有必要)。<P><DD><DL></DL></DD><DD><DL><DT><B>参数:</B><DD><CODE>o</CODE> - 要添加的元素<DD><CODE>timeout</CODE> - 放弃之前等待的时间长度,以 <tt>unit</tt> 为时间单位<DD><CODE>unit</CODE> - 确定如何解释 <tt>timeout</tt> 参数的 <tt>TimeUnit</tt><DT><B>返回:</B><DD>如果成功,则返回 <tt>true</tt>;如果在空间可用前超过了指定的等待时间,则返回 <tt>false</tt>。<DT><B>抛出:</B><DD><CODE><A HREF="../../lang/InterruptedException.html" title="java.lang 中的类">InterruptedException</A></CODE> - 如果在等待时被中断。<DD><CODE><A HREF="../../lang/NullPointerException.html" title="java.lang 中的类">NullPointerException</A></CODE> - 如果指定的元素为 <tt>null</tt>。</DL></DD></DL><HR><A NAME="poll(long, java.util.concurrent.TimeUnit)"><!-- --></A><H3>poll</H3><PRE><A HREF="BlockingQueue.html" title="BlockingQueue 中的类型参数">E</A> <B>poll</B>(long timeout, <A HREF="TimeUnit.html" title="java.util.concurrent 中的枚举">TimeUnit</A> unit) throws <A HREF="../../lang/InterruptedException.html" title="java.lang 中的类">InterruptedException</A></PRE><DL><DD>检索并移除此队列的头部,如果此队列中没有任何元素,则等待指定等待的时间(如果有必要)。<P><DD><DL></DL></DD><DD><DL><DT><B>参数:</B><DD><CODE>timeout</CODE> - 放弃之前等待的时间长度,以 <tt>unit</tt> 为时间单位<DD><CODE>unit</CODE> - 确定如何解释 <tt>timeout</tt> 参数的 <tt>TimeUnit</tt><DT><B>返回:</B><DD>此队列的头部;如果在元素出现前超过了指定的等待时间,则返回 <tt>null</tt>。<DT><B>抛出:</B><DD><CODE><A HREF="../../lang/InterruptedException.html" title="java.lang 中的类">InterruptedException</A></CODE> - 如果在等待时被中断。</DL></DD></DL><HR><A NAME="take()"><!-- --></A><H3>take</H3><PRE><A HREF="BlockingQueue.html" title="BlockingQueue 中的类型参数">E</A> <B>take</B>() throws <A HREF="../../lang/InterruptedException.html" title="java.lang 中的类">InterruptedException</A></PRE><DL><DD>检索并移除此队列的头部,如果此队列不存在任何元素,则一直等待。<P><DD><DL></DL></DD><DD><DL><DT><B>返回:</B><DD>此队列的头部<DT><B>抛出:</B><DD><CODE><A HREF="../../lang/InterruptedException.html" title="java.lang 中的类">InterruptedException</A></CODE> - 如果在等待时被中断。</DL></DD></DL><HR><A NAME="put(java.lang.Object)"><!-- --></A><A NAME="put(E)"><!-- --></A><H3>put</H3><PRE>void <B>put</B>(<A HREF="BlockingQueue.html" title="BlockingQueue 中的类型参数">E</A> o) throws <A HREF="../../lang/InterruptedException.html" title="java.lang 中的类">InterruptedException</A></PRE><DL><DD>将指定元素添加到此队列中,如果没有可用空间,将一直等待(如果有必要)。<P><DD><DL></DL></DD><DD><DL><DT><B>参数:</B><DD><CODE>o</CODE> - 要添加的元素<DT><B>抛出:</B><DD><CODE><A HREF="../../lang/InterruptedException.html" title="java.lang 中的类">InterruptedException</A></CODE> - 如果在等待时被中断。<DD><CODE><A HREF="../../lang/NullPointerException.html" title="java.lang 中的类">NullPointerException</A></CODE> - 如果指定的元素为 <tt>null</tt>。</DL></DD></DL><HR><A NAME="remainingCapacity()"><!-- --></A><H3>remainingCapacity</H3><PRE>int <B>remainingCapacity</B>()</PRE><DL><DD>返回在无阻塞的理想情况下(不存在内存或资源约束)此队列能接受的元素数量;如果没有内部限制,则返回 <tt>Integer.MAX_VALUE</tt>。<p>注意,<em>不能</em> 总是通过检查 <tt>remainingCapacity</tt> 来判断尝试 <tt>add</tt> 元素是否成功,因为可能出现这样的情况:其他线程即将 <tt>put</tt> 或 <tt>take</tt> 一个元素。<P><DD><DL></DL></DD><DD><DL><DT><B>返回:</B><DD>剩余容量</DL></DD></DL><HR><A NAME="add(java.lang.Object)"><!-- --></A><A NAME="add(E)"><!-- --></A><H3>add</H3><PRE>boolean <B>add</B>(<A HREF="BlockingQueue.html" title="BlockingQueue 中的类型参数">E</A> o)</PRE><DL><DD>将指定的元素添加到此队列中(如果立即可行),在成功时返回 <tt>true</tt>,其他情况则抛出 IllegalStateException。<P><DD><DL><DT><B>指定者:</B><DD>接口 <CODE><A HREF="../Collection.html" title="java.util 中的接口">Collection</A><<A HREF="BlockingQueue.html" title="BlockingQueue 中的类型参数">E</A>></CODE> 中的 <CODE><A HREF="../Collection.html#add(E)">add</A></CODE></DL></DD><DD><DL><DT><B>参数:</B><DD><CODE>o</CODE> - 元素<DT><B>返回:</B><DD><tt>true</tt>(按照 <tt>Collection.add</tt> 的常规协定)。<DT><B>抛出:</B><DD><CODE><A HREF="../../lang/NullPointerException.html" title="java.lang 中的类">NullPointerException</A></CODE> - 如果指定元素为 <tt>null</tt><DD><CODE><A HREF="../../lang/IllegalStateException.html" title="java.lang 中的类">IllegalStateException</A></CODE> - 如果无法添加元素</DL></DD></DL><HR><A NAME="drainTo(java.util.Collection)"><!-- --></A><H3>drainTo</H3><PRE>int <B>drainTo</B>(<A HREF="../Collection.html" title="java.util 中的接口">Collection</A><? super <A HREF="BlockingQueue.html" title="BlockingQueue 中的类型参数">E</A>> c)</PRE><DL><DD>移除此队列中所有可用的元素,并将它们添加到给定 collection 中。此操作可能比反复轮询此队列更有效。在试图向 <tt>c</tt> 集合中 <tt>add</tt> 元素没有成功时,可能导致在抛出相关异常时,元素会同时在两个 collection 中出现,或者在其中一个 collection 中出现,也可能在两个 collection 中都不出现。如果试图将一个队列放入自身队列中,则会导致 <tt>IllegalArgumentException</tt> 异常。此外,如果正在进行此操作时修改指定的 collection,则此操作行为是不确定的。<P><DD><DL></DL></DD><DD><DL><DT><B>参数:</B><DD><CODE>c</CODE> - 接收传输元素的 collection<DT><B>返回:</B><DD>传输元素的数量。<DT><B>抛出:</B><DD><CODE><A HREF="../../lang/NullPointerException.html" title="java.lang 中的类">NullPointerException</A></CODE> - 如果 c 为 null<DD><CODE><A HREF="../../lang/IllegalArgumentException.html" title="java.lang 中的类">IllegalArgumentException</A></CODE> - 如果 c 为此队列</DL></DD></DL><HR><A NAME="drainTo(java.util.Collection, int)"><!-- --></A><H3>drainTo</H3><PRE>int <B>drainTo</B>(<A HREF="../Collection.html" title="java.util 中的接口">Collection</A><? super <A HREF="BlockingQueue.html" title="BlockingQueue 中的类型参数">E</A>> c, int maxElements)</PRE><DL><DD>最多从此队列中移除给定数量的可用元素,并将这些元素添加到给定 collection 中。在试图向 <tt>c</tt> 集合中 <tt>add</tt> 元素没有成功时,可能导致在抛出相关异常时,元素会同时在两个 collection 中出现,或者在其中一个 collection 中出现,也可能在两个 collection 中都不出现。如果试图将一个队列放入自身队列中,则会导致 <tt>IllegalArgumentException</tt> 异常。此外,如果正在进行此操作时修改指定的 collection,则此操作行为是不确定的。<P><DD><DL></DL></DD><DD><DL><DT><B>参数:</B><DD><CODE>c</CODE> - 接收传输元素的 collection<DD><CODE>maxElements</CODE> - 传输元素的最大数量<DT><B>返回:</B><DD>传输元素的数量。<DT><B>抛出:</B><DD><CODE><A HREF="../../lang/NullPointerException.html" title="java.lang 中的类">NullPointerException</A></CODE> - 如果 c 为 null<DD><CODE><A HREF="../../lang/IllegalArgumentException.html" title="java.lang 中的类">IllegalArgumentException</A></CODE> - 如果 c 为此队列</DL></DD></DL><!-- ========= END OF CLASS DATA ========= --><HR><!-- ======= START OF BOTTOM NAVBAR ====== --><A NAME="navbar_bottom"><!-- --></A><A HREF="#skip-navbar_bottom" title="跳过导航链接"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""><TR><TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_bottom_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> <TR ALIGN="center" VALIGN="top"> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>概述</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>软件包</B></FONT></A> </TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>类</B></FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/BlockingQueue.html"><FONT CLASS="NavBarFont1"><B>使用</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>树</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>已过时</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>索引</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>帮助</B></FONT></A> </TD> </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM><b>Java<sup><font size=-2>TM</font></sup> 2 Platform<br>Standard Ed. 5.0</b></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="ArrayBlockingQueue.html" title="java.util.concurrent 中的类"><B>上一个类</B></A> <A HREF="BrokenBarrierException.html" title="java.util.concurrent 中的类"><B>下一个类</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../index.html@java_2Futil_2Fconcurrent_2FBlockingQueue.html" target="_top"><B>框架</B></A> <A HREF="BlockingQueue.html" target="_top"><B>无框架</B></A> <SCRIPT type="text/javascript"> <!-- if(window==top) { document.writeln('<A HREF="../../../allclasses-noframe.html"><B>所有类</B></A>'); } //--></SCRIPT><NOSCRIPT> <A HREF="../../../allclasses-noframe.html"><B>所有类</B></A></NOSCRIPT></FONT></TD></TR><TR><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 摘要: 嵌套 | 字段 | 构造方法 | <A HREF="#method_summary">方法</A></FONT></TD><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">详细信息: 字段 | 构造方法 | <A HREF="#method_detail">方法</A></FONT></TD></TR></TABLE><A NAME="skip-navbar_bottom"></A><!-- ======== END OF BOTTOM NAVBAR ======= --><HR><font size="-1"><a href="../../../../../../../../../java.sun.com/cgi-bin/bugreport.cgi">提交错误或意见</a><br>有关更多的 API 参考资料和开发人员文档,请参阅 <a href="../../../../../../../../../java.sun.com/j2se/1.5.0/docs/relnotes/devdocs-vs-specs.html">Java 2 SDK SE 开发人员文档</a>。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。 <p>版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守<a href="../../../../../../../../../java.sun.com/j2se/1.5.0/docs/relnotes/license.html">许可证条款</a>。另请参阅<a href="../../../../../../../../../java.sun.com/docs/redist.html">文档重新分发政策</a>。</font></BODY></HTML>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?