basicthread.html

来自「java类库详细讲解」· HTML 代码 · 共 226 行

HTML
226
字号
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>Creating a Thread
(Java Developers Almanac Example)
</TITLE>
<META CONTENT="Patrick Chan" NAME="AUTHOR">
<META CONTENT="Code Examples from The Java Developers Almanac 1.4" NAME="DESCRIPTION">
<META CONTENT="Addison-Wesley/Patrick Chan" NAME="OWNER">
<META CONTENT="3/20/02" NAME="revision">
<STYLE TYPE="text/css">
<!--     BODY CODE  {font-family: Courier, Monospace;           font-size: 11pt}    TABLE, BODY          {font-family: Verdana, Arial, Helvetica, sans-serif;           font-size: 10pt}    PRE   {font-family: Courier, Monospace;           font-size: 10pt}    H3    {font-family: Verdana, Arial, Helvetica, sans-serif;           font-size: 11pt}    A.eglink {text-decoration: none}    A:hover.eglink {text-decoration: underline}    -->
</STYLE>
</HEAD>
<BODY>
<TABLE CELLSPACING="0" CELLPADDING="0" BORDER="0">
<TR>
<TD rowspan="3"><A HREF="/?l=ex"><IMG BORDER="0" ALIGN="BOTTOM" HSPACE="10" SRC="/egs/almanac14a.jpg"></A></TD><TD VALIGN="top"><font face="Times" size="6"><b>The Java Developers Almanac 1.4</b></font>
<br>
        Order this book from <a href="/cgi-bin/scripts/redirect.pl?l=ex&url=http://www.amazon.com/exec/obidos/ASIN/0201752808/xeo">Amazon</a>.
    </TD>
</TR>
<TR>
<TD align="right" valign="bottom">
<FORM method="get" action="/cgi-bin/search/find.pl">
<INPUT size="25" name="words" type="text"><INPUT value="Search" type="submit">
</FORM>
</TD>
</TR>
</TABLE>
<HR color="#6666cc">
<DIV ALIGN="LEFT">
<A HREF="/">Home</A>
    &gt;
    <A HREF="../index.html">List of Packages</A>
    &gt;
    <B><A HREF="../java.lang/pkg.html">java.lang</A></B><font color="#666666" SIZE="-2">
        &nbsp;[58 examples]
        </font>
        &gt;
        <B><A HREF="../java.lang/pkg.html#Threads">Threads</A></B><font color="#666666" SIZE="-2">
            &nbsp;[11 examples]
            </font>
</DIV><P>
  <h3>
    e92.  
    Creating a Thread</h3>

When a thread is created, it must be permanently bound to an object
with a <code>run()</code> method. When the thread is started, it will invoke the
object's <code>run()</code> method. More specifically, the object must implement
the <code>Runnable</code> interface.

<P> There are two ways to create a thread.  The first is to declare
a class that extends <code>Thread</code>.  When the class is instantiated, the
thread and object are created together and the object is automatically
bound to the thread. By calling the object's <code>start()</code> method,
the thread is started and immediately calls the object's <code>run()</code> method.
Here is some code to demonstrate this method.


<pre>
    // This class extends Thread
    class <font color="#0066ff"><i>BasicThread1</i></font> extends Thread {
        // This method is called when the thread runs
        public void run() {
        }
    }
</pre>


<pre>
    // Create and start the thread
    Thread thread = new <font color="#0066ff"><i>BasicThread1</i></font>();
    thread.start();
</pre>

The second way is to create the thread and supply it an object with a
<code>run()</code> method. This object will be permanently associated with the
thread. The object's <code>run()</code> method will be invoked when the thread
is started.  This method of thread creation is useful if you want many
threads sharing an object. Here is an example that creates a
<code>Runnable</code> object and then creates a thread with the object.


<pre>
    class <font color="#0066ff"><i>BasicThread2</i></font> implements Runnable {
        // This method is called when the thread runs
        public void run() {
        }
    }
</pre>


<pre>
    // Create the object with the run() method
    Runnable runnable = new <font color="#0066ff"><i>BasicThread2()</i></font>;
    
    // Create the thread supplying it with the runnable object
    Thread thread = new Thread(runnable);
    
    // Start the thread
    thread.start();
</pre>
<P><table width="600" CELLSPACING="0" CELLPADDING="2" BORDER="0">
<tr>
<td bgcolor="#6666cc" align="center"><font color="#ffffff">
            &nbsp;Related Examples
        </font></td>
</tr>
</table>


e93. <a class="eglink" href="StopThread.html?l=rel">
    Stopping a Thread
</a>
<br>

e94. <a class="eglink" href="IfStopped.html?l=rel">
    Determining When a Thread Has Finished
</a>
<br>

e95. <a class="eglink" href="Sleep.html?l=rel">
    Pausing the Current Thread
</a>
<br>

e96. <a class="eglink" href="PauseThread.html?l=rel">
    Pausing a Thread
</a>
<br>

e97. <a class="eglink" href="IfLocked.html?l=rel">
    Determining If the Current Thread Is Holding a Synchronized Lock
</a>
<br>

e98. <a class="eglink" href="DaemonThread.html?l=rel">
    Allowing an Application with Live Threads to Exit
</a>
<br>

e99. <a class="eglink" href="ListThreads.html?l=rel">
    Listing All Running Threads
</a>
<br>

e100. <a class="eglink" href="TLocal.html?l=rel">
    Using a Thread-local Variable
</a>
<br>

e101. <a class="eglink" href="GetStack.html?l=rel">
    Getting the Stack Trace of an Exception
</a>
<br>

e102. <a class="eglink" href="WorkQueue.html?l=rel">
    Implementing a Work Queue
</a>
<br>


<table width="600" CELLSPACING="0" CELLPADDING="2" BORDER="0">
<tr>
<td align="left">
<br>
        See also: 
<a class="eglink" href="/egs/java.lang/pkg.html?l=rel#Arrays">
    Arrays
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/java.lang/pkg.html?l=rel#Assertions">
    Assertions
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/java.lang/pkg.html?l=rel#Classes">
    Classes
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/java.lang/pkg.html?l=rel#Commands">
    Commands
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/java.lang/pkg.html?l=rel#Numbers">
    Numbers
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/java.lang/pkg.html?l=rel#Objects">
    Objects
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/java.lang/pkg.html?l=rel#Strings">
    Strings
</a>&nbsp;&nbsp;

<a class="eglink" href="/egs/java.lang/pkg.html?l=rel#System%20Properties">
    System Properties
</a>&nbsp;&nbsp;

</td>
</tr>
</table>

<br>

<br>
<FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="0">
&copy; 2002 Addison-Wesley.
</FONT>
</BODY>
</HTML>

⌨️ 快捷键说明

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