Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| " 2013 FRC Java API "
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## java.lang
Class Thread

    java.lang.Object
      java.lang.Thread

All Implemented Interfaces:
  Runnable

Direct Known Subclasses:
  CrossIsolateThread

    public class Thread

extends Object
implements Runnable

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();

Since:
  JDK1.0
See Also:
  `Runnable`, `Runtime.exit(int)`, `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 VM.
`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 a unique number that identifies the thread and the thread's 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

### MIN_PRIORITY

    public static final int MIN_PRIORITY

  The minimum priority that a thread can have.

  See Also:
    Constant Field Values

### NORM_PRIORITY

    public static final int NORM_PRIORITY

  The default priority that is assigned to a thread.

  See Also:
    Constant Field Values

### MAX_PRIORITY

    public static final int MAX_PRIORITY

  The maximum priority that a thread can have.

  See Also:
    Constant Field Values

Constructor Detail

### Thread

    public Thread()

  Allocates a new `Thread` object.

  Threads created this way must have overridden their `run()` method to actually do anything.

  See Also:
    `Runnable`

### Thread

    public Thread(Runnable target)

  Allocates a new `Thread` object with a specific target object whose `run` method is called.

  Parameters:
    `target` - the object whose `run` method is called.

### Thread

    public Thread(Runnable target,
                  String name)

  Allocates a new `Thread` object with the given target and name.

  Parameters:
    `target` - the object whose `run` method is called.
    `name` - the name of the new thread.

### Thread

    public Thread(String name)

  Allocates a new `Thread` object with the given name. Threads created this way must have overridden their `run()` method to actually do anything.

  Parameters:
    `name` - the name of the new thread.

Method Detail

### currentThread

    public static Thread currentThread()

  Returns a reference to the currently executing thread object.

  Returns:
    the currently executing thread.

### yield

    public static void yield()

  Causes the currently executing thread object to temporarily pause and allow other threads to execute.

### sleep

    public static void sleep(long millis)
                      throws InterruptedException

  Causes the currently executing thread to sleep (temporarily cease execution) for the specified number of milliseconds. The thread does not lose ownership of any monitors.

  Parameters:
    `millis` - the length of time to sleep in milliseconds.
  Throws:
    `InterruptedException` - if another thread has interrupted the current thread. The interrupted status of the current thread is cleared when this exception is thrown.
  See Also:
    `Object.notify()`

### start

    public void start()

  Causes this thread to begin execution; the Java Virtual Machine calls the `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).

  Throws:
    `IllegalThreadStateException` - if the thread was already started.
  See Also:
    `run()`

### run

    public 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.

  Subclasses of `Thread` should override this method.

  Specified by:
    `run` in interface `Runnable`
  See Also:
    `start()`, `Runnable.run()`

### interrupt

    public void interrupt()

  Interrupts this thread.

  This method does nothing if the current thread is interrupting itself.

  If this thread is blocked in an invocation of the `wait()`, `wait(long)`, or `wait(long, int)` methods of the `Object` class or of the `join()` or `sleep(long)` methods of this class, then its interrupt status will be cleared and it will receive an `InterruptedException`.

  If none of the previous conditions hold then this thread's interrupt status will be set.

  In an implementation conforming to the CLDC Specification, this operation is not required to cancel or clean up any pending I/O operations that the thread may be waiting for.

  Since:
    JDK 1.0, CLDC 1.1

### isAlive

    public final boolean isAlive()

  Tests if this thread is alive. A thread is alive if it has been started and has not yet died.

  Returns:
    `true` if this thread is alive; `false` otherwise.

### setPriority

    public final void setPriority(int newPriority)

  Changes the priority of this thread.

  Parameters:
    `newPriority` - priority to set this thread to
  Throws:
    `IllegalArgumentException` - If the priority is not in the range `MIN_PRIORITY` to `MAX_PRIORITY`.
  See Also:
    `getPriority()`, `getPriority()`, `MAX_PRIORITY`, `MIN_PRIORITY`

### getPriority

    public final int getPriority()

  Returns this thread's priority.

  Returns:
    this thread's name.
  See Also:
    `setPriority(int)`, `setPriority(int)`

### getName

    public final String getName()

  Returns this thread's name. Note that in CLDC the name of the thread can only be set when creating the thread.

  Returns:
    this thread's name.

### activeCount

    public static int activeCount()

  Returns the current number of active threads in the VM.

  Returns:
    the current number of threads in this thread's thread group.

### join

    public final void join()
                    throws InterruptedException

  Waits for this thread to die.

  Throws:
    `InterruptedException` - if another thread has interrupted the current thread. The interrupted status of the current thread is cleared when this exception is thrown.

### toString

    public String toString()

  Returns a string representation of this thread, including a unique number that identifies the thread and the thread's priority.

  Overrides:
    `toString` in class `Object`
  Returns:
    a string representation of this thread.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| " 2013 FRC Java API "
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

"
For updated information see the Java FRC site
"