|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.lang.Thread
public class Thread
A thread is a thread of execution in a program. The Java Virtual Machine allows an application to have multiple threads of execution running concurrently.
Every thread has a priority. Threads with higher priority are executed in preference to threads with lower priority.
There are two ways to create a new thread of execution. One is to
declare a class to be a subclass of Thread
. This
subclass should override the run
method of class
Thread
. An instance of the subclass can then be
allocated and started. For example, a thread that computes primes
larger than a stated value could be written as follows:
class PrimeThread extends Thread { long minPrime; PrimeThread(long minPrime) { this.minPrime = minPrime; } public void run() { // compute primes larger than minPrime . . . } }
The following code would then create a thread and start it running:
PrimeThread p = new PrimeThread(143); p.start();
The other way to create a thread is to declare a class that
implements the Runnable
interface. That class then
implements the run
method. An instance of the class can
then be allocated, passed as an argument when creating
Thread
, and started. The same example in this other
style looks like the following:
class PrimeRun implements Runnable { long minPrime; PrimeRun(long minPrime) { this.minPrime = minPrime; } public void run() { // compute primes larger than minPrime . . . } }
The following code would then create a thread and start it running:
PrimeRun p = new PrimeRun(143); new Thread(p).start();
Runnable
,
run()
Field Summary | |
---|---|
static int |
MAX_PRIORITY
The maximum priority that a thread can have. |
static int |
MIN_PRIORITY
The minimum priority that a thread can have. |
static int |
NORM_PRIORITY
The priority that is assigned to the primordial thread. |
Constructor Summary | |
---|---|
Thread()
Allocates a new Thread object. |
|
Thread(Runnable target)
Allocates a new Thread object with a
specific target object whose run method
is called. |
|
Thread(Runnable target,
String name)
|
|
Thread(String name)
Allocates a new Thread object with the
given name. |
Method Summary | |
---|---|
static int |
activeCount()
Returns the current number of active threads in the virtual machine. |
static Thread |
currentThread()
Returns a reference to the currently executing Thread object. |
void |
destroy()
destroy destroys the thread without any cleanup. |
Object |
getGroupNext()
|
String |
getName()
Return the name of this thread. |
int |
getPriority()
Returns this thread's priority. |
void |
interrupt()
Set the interrupted flag. |
static boolean |
interrupted()
|
boolean |
isAlive()
Tests if this thread is alive. |
boolean |
isDaemon()
Set the daemon flag. |
boolean |
isInterrupted()
|
void |
join()
Waits for this thread to die. |
void |
join(int timeout)
Waits at most millis milliseconds for this thread to die. |
void |
run()
If this thread was constructed using a separate Runnable run object, then that
Runnable object's run method is called;
otherwise, this method does nothing and returns. |
void |
setDaemon(boolean on)
|
void |
setPriority(int priority)
Set the priority of this thread. |
static void |
sleep(long aMilliseconds)
Causes the currently executing thread to sleep (temporarily cease execution) for the specified number of milliseconds. |
void |
start_native()
|
void |
start()
Causes this thread to begin execution; the Java Virtual Machine calls the run method of this thread. |
void |
stop()
stop destroys the thread while attempting some cleanup. |
String |
toString()
Return a string representation of this Thread, including its name and priority. |
static void |
yield()
Causes the currently executing thread object to temporarily pause and allow other threads to execute. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final int MIN_PRIORITY
public static final int NORM_PRIORITY
public static final int MAX_PRIORITY
Constructor Detail |
---|
public Thread()
Thread
object.
Threads created this way must have overridden their
run()
method to actually do anything.
Runnable
public Thread(String name)
Thread
object with the
given name.
Threads created this way must have overridden their
run()
method to actually do anything.
name
- the name of the new thread.public Thread(Runnable target)
Thread
object with a
specific target object whose run
method
is called.
target
- the object whose run
method is called.public Thread(Runnable target, String name)
Method Detail |
---|
public final boolean isAlive()
true
if this thread is alive;
false
otherwise.public void run()
Runnable
run object, then that
Runnable
object's run
method is called;
otherwise, this method does nothing and returns.
Subclasses of Thread
should override this method.
start()
,
Runnable.run()
public void start()
run
method of this thread.
The result is that two threads are running concurrently: the
current thread (which returns from the call to the
start
method) and the other thread (which executes its
run
method).
IllegalThreadStateException
- if the thread was already
started.run()
public final void start_native()
public static Thread currentThread()
Thread
object.
public static void yield()
public static void sleep(long aMilliseconds) throws InterruptedException
aMilliseconds
- the length of time to sleep in milliseconds.
InterruptedException
- if another thread has interrupted
the current thread. The interrupted status of the
current thread is cleared when this exception is thrown.Object.notify()
public final int getPriority()
setPriority(int)
public final void setPriority(int priority)
Threads inherit the priority of their parent. The primordial thread has priority NORM_PRIORITY.
priority
- must be between MIN_PRIORITY and MAX_PRIORITY.public void interrupt()
public static boolean interrupted()
public final boolean isInterrupted()
public final void destroy()
public final void stop()
public final boolean isDaemon()
public final void setDaemon(boolean on)
public final void join() throws InterruptedException
InterruptedException
- if another thread has interrupted
the current thread. The interrupted status of the
current thread is cleared when this exception is thrown.public final void join(int timeout) throws InterruptedException
timeout
- the length of time to wait in milliseconds.
InterruptedException
- if another thread has interrupted
the current thread. The interrupted status of the
current thread is cleared when this exception is thrown.public final Object getGroupNext()
public static int activeCount()
public String getName()
public String toString()
toString
in class Object
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |