thread.html

来自「j2se5-api-zh,java文档的中文版本」· HTML 代码 · 共 1,202 行 · 第 1/5 页

HTML
1,202
字号
<A NAME="Thread(java.lang.Runnable)"><!-- --></A><H3>Thread</H3><PRE>public <B>Thread</B>(<A HREF="Runnable.html" title="java.lang 中的接口">Runnable</A>&nbsp;target)</PRE><DL><DD>分配新的 <code>Thread</code> 对象。这种构造方法与 <code>Thread(null, target,</code><i>gname</i><code>)</code> 具有相同的作用,其中的 <i>gname</i> 是一个新生成的名称。自动生成的名称的形式为 <code>“Thread-”+</code><i>n</i>,其中的 <i>n</i> 为整数。<P><DL><DT><B>参数:</B><DD><CODE>target</CODE> - 其 <code>run</code> 方法被调用的对象。<DT><B>另请参见:</B><DD><A HREF="Thread.html#Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String)"><CODE>Thread(java.lang.ThreadGroup,           java.lang.Runnable, java.lang.String)</CODE></A></DL></DL><HR><A NAME="Thread(java.lang.ThreadGroup, java.lang.Runnable)"><!-- --></A><H3>Thread</H3><PRE>public <B>Thread</B>(<A HREF="ThreadGroup.html" title="java.lang 中的类">ThreadGroup</A>&nbsp;group,              <A HREF="Runnable.html" title="java.lang 中的接口">Runnable</A>&nbsp;target)</PRE><DL><DD>分配新的 <code>Thread</code> 对象。这种构造方法与 <code>Thread(group, target,</code> <i>gname</i><code>)</code> 具有相同的作用,其中的 <i>gname</i> 是一个新生成的名称。自动生成的名称的形式为 <code>"Thread-"+</code><i>n</i> ,其中的 <i>n</i> 为整数。<P><DL><DT><B>参数:</B><DD><CODE>group</CODE> - 线程组。<DD><CODE>target</CODE> - 其 <code>run</code> 方法被调用的对象。<DT><B>抛出:</B><DD><CODE><A HREF="SecurityException.html" title="java.lang 中的类">SecurityException</A></CODE> - 如果当前线程无法在指定的线程组中创建线程。<DT><B>另请参见:</B><DD><A HREF="Thread.html#Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String)"><CODE>Thread(java.lang.ThreadGroup,              java.lang.Runnable, java.lang.String)</CODE></A></DL></DL><HR><A NAME="Thread(java.lang.String)"><!-- --></A><H3>Thread</H3><PRE>public <B>Thread</B>(<A HREF="String.html" title="java.lang 中的类">String</A>&nbsp;name)</PRE><DL><DD>分配新的 <code>Thread</code> 对象。这种构造方法与 <code>Thread(null, null, name)</code> 具有相同的作用。<P><DL><DT><B>参数:</B><DD><CODE>name</CODE> - 新线程的名称。<DT><B>另请参见:</B><DD><A HREF="Thread.html#Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String)"><CODE>Thread(java.lang.ThreadGroup,          java.lang.Runnable, java.lang.String)</CODE></A></DL></DL><HR><A NAME="Thread(java.lang.ThreadGroup, java.lang.String)"><!-- --></A><H3>Thread</H3><PRE>public <B>Thread</B>(<A HREF="ThreadGroup.html" title="java.lang 中的类">ThreadGroup</A>&nbsp;group,              <A HREF="String.html" title="java.lang 中的类">String</A>&nbsp;name)</PRE><DL><DD>分配新的 <code>Thread</code> 对象。这种构造方法与 <code>Thread(group, null, name)</code> 具有相同的作用。<P><DL><DT><B>参数:</B><DD><CODE>group</CODE> - 线程组。<DD><CODE>name</CODE> - 新线程的名称。<DT><B>抛出:</B><DD><CODE><A HREF="SecurityException.html" title="java.lang 中的类">SecurityException</A></CODE> - 如果当前线程无法在指定的线程组中创建线程。<DT><B>另请参见:</B><DD><A HREF="Thread.html#Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String)"><CODE>Thread(java.lang.ThreadGroup,          java.lang.Runnable, java.lang.String)</CODE></A></DL></DL><HR><A NAME="Thread(java.lang.Runnable, java.lang.String)"><!-- --></A><H3>Thread</H3><PRE>public <B>Thread</B>(<A HREF="Runnable.html" title="java.lang 中的接口">Runnable</A>&nbsp;target,              <A HREF="String.html" title="java.lang 中的类">String</A>&nbsp;name)</PRE><DL><DD>分配新的 <code>Thread</code> 对象。这种构造方法与 <code>Thread(null, target, name)</code> 具有相同的作用。<P><DL><DT><B>参数:</B><DD><CODE>target</CODE> - 其 <code>run</code> 方法被调用的对象。<DD><CODE>name</CODE> - 新线程的名称。<DT><B>另请参见:</B><DD><A HREF="Thread.html#Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String)"><CODE>Thread(java.lang.ThreadGroup,          java.lang.Runnable, java.lang.String)</CODE></A></DL></DL><HR><A NAME="Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String)"><!-- --></A><H3>Thread</H3><PRE>public <B>Thread</B>(<A HREF="ThreadGroup.html" title="java.lang 中的类">ThreadGroup</A>&nbsp;group,              <A HREF="Runnable.html" title="java.lang 中的接口">Runnable</A>&nbsp;target,              <A HREF="String.html" title="java.lang 中的类">String</A>&nbsp;name)</PRE><DL><DD>分配新的 <code>Thread</code> 对象,以便将 <code>target</code> 作为其运行对象,将指定的 <code>name</code> 作为其名称,并作为 <code>group</code> 所引用的线程组的一员。<p>如果 <code>group</code> 为 <code>null</code>,并且有安全管理器,则该组由安全管理器的 <code>getThreadGroup</code> 方法确定。如果 <code>group</code> 为 <code>null</code>,并且没有安全管理器,或安全管理器的 <code>getThreadGroup</code> 方法返回 <code>null</code>,则该组与创建新线程的线程被设定为相同的 ThreadGroup。  <p>如果有安全管理器,则其 <code>checkAccess</code> 方法通过 ThreadGroup 作为其参数被调用。<p>此外,当被重写 <code>getContextClassLoader</code> 或 <code>setContextClassLoader</code> 方法的子类构造方法直接或间接调用时,其 <code>checkPermission</code> 方法通过 <code>RuntimePermission("enableContextClassLoaderOverride")</code> 权限调用。其结果可能是 SecurityException。<p>如果 <code>target</code> 参数不是 <code>null</code>,则 <code>target</code> 的 <code>run</code> 方法在启动该线程时调用。如果 target 参数为 <code>null</code>,则该线程的 <code>run</code> 方法在该线程启动时调用。<p>新创建线程的优先级被设定为创建该线程的线程的优先级,即当前正在运行的线程的优先级。方法 <code>setPriority</code> 可用于将优先级更改为一个新值。<p>当且仅当创建新线程的线程当前被标记为守护线程时,新创建的线程才被标记为守护线程。方法 <code>setDaemon </code> 可用于改变线程是否为守护线程。<P><DL><DT><B>参数:</B><DD><CODE>group</CODE> - 线程组。<DD><CODE>target</CODE> - 其 <code>run</code> 方法被调用的对象。<DD><CODE>name</CODE> - 新线程的名称。<DT><B>抛出:</B><DD><CODE><A HREF="SecurityException.html" title="java.lang 中的类">SecurityException</A></CODE> - 如果当前线程无法在指定的线程组中创建线程,或者无法重写上下文类加载器方法。<DT><B>另请参见:</B><DD><A HREF="Runnable.html#run()"><CODE>Runnable.run()</CODE></A>, <A HREF="Thread.html#run()"><CODE>run()</CODE></A>, <A HREF="Thread.html#setDaemon(boolean)"><CODE>setDaemon(boolean)</CODE></A>, <A HREF="Thread.html#setPriority(int)"><CODE>setPriority(int)</CODE></A>, <A HREF="ThreadGroup.html#checkAccess()"><CODE>ThreadGroup.checkAccess()</CODE></A>, <A HREF="SecurityManager.html#checkAccess(java.lang.Thread)"><CODE>SecurityManager.checkAccess(java.lang.Thread)</CODE></A></DL></DL><HR><A NAME="Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String, long)"><!-- --></A><H3>Thread</H3><PRE>public <B>Thread</B>(<A HREF="ThreadGroup.html" title="java.lang 中的类">ThreadGroup</A>&nbsp;group,              <A HREF="Runnable.html" title="java.lang 中的接口">Runnable</A>&nbsp;target,              <A HREF="String.html" title="java.lang 中的类">String</A>&nbsp;name,              long&nbsp;stackSize)</PRE><DL><DD>分配新的 <code>Thread</code> 对象,以便将 <code>target</code> 作为其运行对象,将指定的 <code>name</code> 作为其名称,作为 <code>group</code> 所引用的线程组的一员,并具有指定的<i>堆栈尺寸</i>。<p>除了允许指定线程堆栈尺寸以外,这种构造方法与 <A HREF="Thread.html#Thread(java.lang.ThreadGroup, java.lang.Runnable, java.lang.String)"><CODE>Thread(ThreadGroup,Runnable,String)</CODE></A> 完全一样。堆栈尺寸是虚拟机要为该线程堆栈分配的地址空间的近似字节数。<b><tt>stackSize</tt> 参数(如果有)的作用具有高度的平台依赖性。</b><p>在某些平台上,指定一个较高的 <tt>stackSize</tt> 参数值可能使线程在抛出 <A HREF="StackOverflowError.html" title="java.lang 中的类"><CODE>StackOverflowError</CODE></A> 之前达到较大的递归深度。同样,指定一个较低的值将允许较多的线程同时存在,且不会抛出 <A HREF="OutOfMemoryError.html" title="java.lang 中的类"><CODE>OutOfMemoryError</CODE></A>(或其他内部错误)。<tt>stackSize</tt> 参数的值与最大递归深度和并发程度之间的关系细节与平台有关。<b>在某些平台上,<tt>stackSize</tt> 参数的值无论如何不会起任何作用。</b> <p>作为建议,可以让虚拟机自由处理 <tt>stackSize</tt> 参数。如果指定值对于平台来说过低,则虚拟机可能使用某些特定于平台的最小值;如果指定值过高,则虚拟机可能使用某些特定于平台的最大值。同样,虚拟机还会视情况自由地舍入指定值(或完全忽略它)。<p>将 <tt>stackSize</tt> 参数值指定为零将使这种构造方法与 <tt>Thread(ThreadGroup, Runnable, String)</tt> 构造方法具有完全相同的作用。<p><i>由于这种构造方法的行为具有平台依赖性,因此在使用它时要非常小心。执行特定计算所必需的线程堆栈尺寸可能会因 JRE 实现的不同而不同。鉴于这种不同,仔细调整堆栈尺寸参数可能是必需的,而且可能要在支持应用程序运行的 JRE 实现上反复调整。</i><p>实现注意事项:鼓励 Java 平台实现者文档化其 <tt>stackSize parameter</tt> 的实现行为。<P><DL><DT><B>参数:</B><DD><CODE>group</CODE> - 线程组。<DD><CODE>target</CODE> - 其 <code>run</code> 方法被调用的对象。<DD><CODE>name</CODE> - 新线程的名称。<DD><CODE>stackSize</CODE> - 新线程的预期堆栈尺寸,为零时表示忽略该参数。<DT><B>抛出:</B><DD><CODE><A HREF="SecurityException.html" title="java.lang 中的类">SecurityException</A></CODE> - 如果当前线程无法在指定的线程组中创建线程。</DL></DL><!-- ============ 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="currentThread()"><!-- --></A><H3>currentThread</H3><PRE>public static <A HREF="Thread.html" title="java.lang 中的类">Thread</A> <B>currentThread</B>()</PRE><DL><DD>返回对当前正在执行的线程对象的引用。<P><DD><DL></DL></DD><DD><DL><DT><B>返回:</B><DD>当前执行的线程。</DL></DD></DL><HR><A NAME="yield()"><!-- --></A><H3>yield</H3><PRE>public static void <B>yield</B>()</PRE><DL><DD>暂停当前正在执行的线程对象,并执行其他线程。<P><DD><DL></DL></DD><DD><DL></DL></DD></DL><HR><A NAME="sleep(long)"><!-- --></A><H3>sleep</H3><PRE>public static void <B>sleep</B>(long&nbsp;millis)                  throws <A HREF="InterruptedException.html" title="java.lang 中的类">InterruptedException</A></PRE><DL><DD>在指定的毫秒数内让当前正在执行的线程休眠(暂停执行)。该线程不丢失任何监视器的所属权。<P><DD><DL></DL></DD><DD><DL><DT><B>参数:</B><DD><CODE>millis</CODE> - 以毫秒为单位的休眠时间。<DT><B>抛出:</B><DD><CODE><A HREF="InterruptedException.html" title="java.lang 中的类">InterruptedException</A></CODE> - 如果另一个线程中断了当前线程。当抛出该异常时,当前线程的<i>中断状态</i> 被清除。<DT><B>另请参见:</B><DD><A HREF="Object.html#notify()"><CODE>Object.notify()</CODE></A></DL></DD></DL><HR><A NAME="sleep(long, int)"><!-- --></A><H3>sleep</H3><PRE>public static void <B>sleep</B>(long&nbsp;millis,                         int&nbsp;nanos)                  throws <A HREF="InterruptedException.html" title="java.lang 中的类">InterruptedException</A></PRE><DL><DD>在指定的毫秒数加指定的纳秒数内让当前正在执行的线程休眠(暂停执行)。该线程不丢失任何监视器的所属权。<P><DD><DL></DL></DD><DD><DL><DT><B>参数:</B><DD><CODE>millis</CODE> - 以毫秒为单位的休眠时间。<DD><CODE>nanos</CODE> - 要休眠的另外 0-999999 纳秒。<DT><B>抛出:</B><DD><CODE><A HREF="IllegalArgumentException.html" title="java.lang 中的类">IllegalArgumentException</A></CODE> - 如果 millis 值为负或 nanos 值不在 0-999999 范围内。<DD><CODE><A HREF="InterruptedException.html" title="java.lang 中的类">InterruptedException</A></CODE> - 如果另一个线程中断了当前线程。当抛出该异常时,当前线程的<i>中断状态</i> 被清除。<DT><B>另请参见:</B><DD><A HREF="Object.html#notify()"><CODE>Object.notify()</CODE></A></DL></DD></DL><HR><A NAME="start()"><!-- --></A><H3>start</H3><PRE>public void <B>start</B>()</PRE><DL><DD>使该线程开始执行;Java 虚拟机调用该线程的 <code>run</code> 方法。 <p> 结果是两个线程同时运行;当前线程(从调用返回给 <code>start</code> 方法)和另一个线程(执行其 <code>run</code> 方法)。 <p> 多次启动一个线程是非法的。特别是当线程已经结束执行后,不能再重新启动。<P><DD><DL></DL></DD><DD><DL><DT><B>抛出:</B><DD><CODE><A HREF="IllegalThreadStateException.html" title="java.lang 中的类">IllegalThreadStateException</A></CODE> - 如果线程已经启动。<DT><B>另请参见:</B><DD><A HREF="Thread.html#run()"><CODE>run()</CODE></A>, <A HREF="Thread.html#stop()"><CODE>stop()</CODE></A></DL></DD></DL><HR>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?