Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Enums](https://developer.android.com/reference/java/lang/Thread.State#enumconstants) \| [Methods](https://developer.android.com/reference/java/lang/Thread.State#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/java/lang/Thread.State#inhmethods)

# Thread.State


`
public
static
final

enum
Thread.State
`


`


`

`

extends https://developer.android.com/reference/java/lang/Enum<https://developer.android.com/reference/java/lang/Thread.State>


`

`


`

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) |||
| ↳ | [java.lang.Enum](https://developer.android.com/reference/java/lang/Enum)\<[java.lang.Thread.State](https://developer.android.com/reference/java/lang/Thread.State)\> ||
|   | ↳ | java.lang.Thread.State |

<br />

*** ** * ** ***

A thread state. A thread can be in one of the following states:

- `https://developer.android.com/reference/java/lang/Thread.State#NEW`  
  A thread that has not yet started is in this state.
- `https://developer.android.com/reference/java/lang/Thread.State#RUNNABLE`  
  A thread executing in the Java virtual machine is in this state.
- `https://developer.android.com/reference/java/lang/Thread.State#BLOCKED`  
  A thread that is blocked waiting for a monitor lock is in this state.
- `https://developer.android.com/reference/java/lang/Thread.State#WAITING`  
  A thread that is waiting indefinitely for another thread to perform a particular action is in this state.
- `https://developer.android.com/reference/java/lang/Thread.State#TIMED_WAITING`  
  A thread that is waiting for another thread to perform an action for up to a specified waiting time is in this state.
- `https://developer.android.com/reference/java/lang/Thread.State#TERMINATED`  
  A thread that has exited is in this state.


A thread can be in only one state at a given point in time.
These states are virtual machine states which do not reflect
any operating system thread states.
**See also:**

- `https://developer.android.com/reference/java/lang/Thread#getState()`

## Summary

| ### Enum values ||
|---|---|
| `https://developer.android.com/reference/java/lang/Thread.State` | `BLOCKED` Thread state for a thread blocked waiting for a monitor lock. |
| `https://developer.android.com/reference/java/lang/Thread.State` | `NEW` Thread state for a thread which has not yet started. |
| `https://developer.android.com/reference/java/lang/Thread.State` | `RUNNABLE` Thread state for a runnable thread. |
| `https://developer.android.com/reference/java/lang/Thread.State` | `TERMINATED` Thread state for a terminated thread. |
| `https://developer.android.com/reference/java/lang/Thread.State` | `TIMED_WAITING` Thread state for a waiting thread with a specified waiting time. |
| `https://developer.android.com/reference/java/lang/Thread.State` | `WAITING` Thread state for a waiting thread. |

| ### Public methods ||
|---|---|
| ` static https://developer.android.com/reference/java/lang/Thread.State` | ` https://developer.android.com/reference/java/lang/Thread.State#valueOf(java.lang.String)(https://developer.android.com/reference/java/lang/String name) ` |
| ` static final https://developer.android.com/reference/java/lang/Thread.State` | ` https://developer.android.com/reference/java/lang/Thread.State#values()() ` |

| ### Inherited methods |
|---|---|
| From class ` https://developer.android.com/reference/java/lang/Enum ` |---|---| | ` final https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/lang/Enum#clone()() ` Throws CloneNotSupportedException. | | ` final int` | ` https://developer.android.com/reference/java/lang/Enum#compareTo(E)(https://developer.android.com/reference/java/lang/Thread.State o) ` Compares this enum with the specified object for order. | | ` final boolean` | ` https://developer.android.com/reference/java/lang/Enum#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object other) ` Returns true if the specified object is equal to this enum constant. | | ` final void` | ` https://developer.android.com/reference/java/lang/Enum#finalize()() ` enum classes cannot have finalize methods. | | ` final https://developer.android.com/reference/java/lang/Class<https://developer.android.com/reference/java/lang/Thread.State>` | ` https://developer.android.com/reference/java/lang/Enum#getDeclaringClass()() ` Returns the Class object corresponding to this enum constant's enum type. | | ` final int` | ` https://developer.android.com/reference/java/lang/Enum#hashCode()() ` Returns a hash code for this enum constant. | | ` final https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Enum#name()() ` Returns the name of this enum constant, exactly as declared in its enum declaration. | | ` final int` | ` https://developer.android.com/reference/java/lang/Enum#ordinal()() ` Returns the ordinal of this enumeration constant (its position in its enum declaration, where the initial constant is assigned an ordinal of zero). | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Enum#toString()() ` Returns the name of this enum constant, as contained in the declaration. | | ` static <T extends https://developer.android.com/reference/java/lang/Enum<T>> T` | ` https://developer.android.com/reference/java/lang/Enum#valueOf(java.lang.Class<T>,%20java.lang.String)(https://developer.android.com/reference/java/lang/Class<T> enumClass, https://developer.android.com/reference/java/lang/String name) ` Returns the enum constant of the specified enum class with the specified name. | ||
| From class ` https://developer.android.com/reference/java/lang/Object ` |---|---| | ` https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/lang/Object#clone()() ` Creates and returns a copy of this object. | | ` boolean` | ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) ` Indicates whether some other object is "equal to" this one. | | ` void` | ` https://developer.android.com/reference/java/lang/Object#finalize()() ` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. | | ` final https://developer.android.com/reference/java/lang/Class<?>` | ` https://developer.android.com/reference/java/lang/Object#getClass()() ` Returns the runtime class of this `Object`. | | ` int` | ` https://developer.android.com/reference/java/lang/Object#hashCode()() ` Returns a hash code value for the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notify()() ` Wakes up a single thread that is waiting on this object's monitor. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notifyAll()() ` Wakes up all threads that are waiting on this object's monitor. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Object#toString()() ` Returns a string representation of the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait()() ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*. | ||
| From interface ` https://developer.android.com/reference/java/lang/Comparable ` |---|---| | ` abstract int` | ` https://developer.android.com/reference/java/lang/Comparable#compareTo(T)(https://developer.android.com/reference/java/lang/Thread.State o) ` Compares this object with the specified object for order. | ||

## Enum values

### BLOCKED

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final Thread.State BLOCKED
```

Thread state for a thread blocked waiting for a monitor lock.
A thread in the blocked state is waiting for a monitor lock
to enter a synchronized block/method or
reenter a synchronized block/method after calling
`https://developer.android.com/reference/java/lang/Object#wait()`.

<br />

### NEW

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final Thread.State NEW
```

Thread state for a thread which has not yet started.

<br />

### RUNNABLE

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final Thread.State RUNNABLE
```

Thread state for a runnable thread. A thread in the runnable
state is executing in the Java virtual machine but it may
be waiting for other resources from the operating system
such as processor.

<br />

### TERMINATED

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final Thread.State TERMINATED
```

Thread state for a terminated thread.
The thread has completed execution.

<br />

### TIMED_WAITING

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final Thread.State TIMED_WAITING
```

Thread state for a waiting thread with a specified waiting time.
A thread is in the timed waiting state due to calling one of
the following methods with a specified positive waiting time:

- `https://developer.android.com/reference/java/lang/Thread#sleep(java.time.Duration)`
- `https://developer.android.com/reference/java/lang/Object#wait(long)` with timeout
- `https://developer.android.com/reference/java/lang/Thread#join(long)` with timeout
- `https://developer.android.com/reference/java/util/concurrent/locks/LockSupport#parkNanos(java.lang.Object,%20long)`
- `https://developer.android.com/reference/java/util/concurrent/locks/LockSupport#parkUntil(java.lang.Object,%20long)`

<br />

<br />

### WAITING

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final Thread.State WAITING
```

Thread state for a waiting thread.
A thread is in the waiting state due to calling one of the
following methods:

- `https://developer.android.com/reference/java/lang/Object#wait()` with no timeout
- `https://developer.android.com/reference/java/lang/Thread#join()` with no timeout
- `https://developer.android.com/reference/java/util/concurrent/locks/LockSupport#park()`

A thread in the waiting state is waiting for another thread to
perform a particular action.

For example, a thread that has called `Object.wait()`
on an object is waiting for another thread to call
`Object.notify()` or `Object.notifyAll()` on
that object. A thread that has called `Thread.join()`
is waiting for a specified thread to terminate.

<br />

## Public methods

### valueOf

```
public static Thread.State valueOf (String name)
```

<br />

<br />

| Parameters ||
|---|---|
| `name` | `String` <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/Thread.State` | <br /> |

### values

```
public static final State[] values ()
```

<br />

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/Thread.State` | <br /> |