|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.lang.Thread
@TransactionType(value=NOT_SUPPORTED) 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();
This Java Card class is a subset of the CLDC 1.1 Thread class. Some interfaces, methods and/or variables have been pruned, and/or other methods simplified, in an effort to reduce the size of this class and/or eliminate dependencies on unsupported features. As a general principle, threads are owned by their creator. See Runtime Environment Specification for the Java Card Platform, Connected Edition, chapter 7 for details regarding thread ownership.
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 default priority that is assigned to a 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)
Allocates a new Thread object with the given target and
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. |
String |
getName()
Returns this thread's name. |
int |
getPriority()
Returns this thread's priority. |
void |
interrupt()
Interrupts this thread. |
boolean |
isAlive()
Tests if this thread is alive. |
void |
join()
Waits 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 |
setPriority(int newPriority)
Changes the priority of this thread. |
static void |
sleep(long millis)
Causes the currently executing thread to sleep (temporarily cease execution) for the specified number of milliseconds. |
void |
start()
Causes this thread to begin execution; the Java Virtual Machine calls the run method of this thread. |
String |
toString()
Returns a string representation of this thread, including the thread's 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.
SecurityException
- if the permission to create a thread is not granted.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.
SecurityException
- if the permission to create a thread is not granted.public Thread(Runnable target) throws SecurityException
Thread
object with a specific target
object whose run
method is called.
target
- the object whose run
method is called.
SecurityException
- if the permission to create a thread is not granted.public Thread(Runnable target, String name)
Thread
object with the given target and
name.
target
- the object whose run
method is called.name
- the name of the new thread.
SecurityException
- if the permission to create a thread is not granted.Method Detail |
---|
public static Thread currentThread()
Thread
object.
public static void yield()
public static void sleep(long millis) throws InterruptedException
millis
- 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 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 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.
run
in interface Runnable
start()
,
Runnable.run()
public void interrupt()
SecurityException
- if the permission to modify a thread state is not granted.public final boolean isAlive()
true
if this thread is alive; false
otherwise.public final void setPriority(int newPriority)
newPriority
- priority to set this thread to
IllegalArgumentException
- If the priority is not in the range
MIN_PRIORITY
to MAX_PRIORITY
.
SecurityException
- if the permission to modify a thread state is not granted.getPriority()
,
MAX_PRIORITY
,
MIN_PRIORITY
public final int getPriority()
setPriority(int)
public final String getName()
public static int activeCount()
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 String toString()
toString
in class Object
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |