# Class RecordedThread

java.lang.Object
jdk.jfr.consumer.RecordedObject
jdk.jfr.consumer.RecordedThread

public final class RecordedThread extends RecordedObject
A recorded thread.

Since:
  9

## Method Summary

Modifier and Type
Method
Description
`long`
`getId()`
Returns a unique ID for both native threads and Java threads that can't be reused within the lifespan of the JVM.
`String`
`getJavaName()`
Returns the Java thread name, or `null` if doesn't exist.
`long`
`getJavaThreadId()`
Returns the Java thread ID, or `-1` if it's not a Java thread.
`String`
`getOSName()`
Returns the thread name used by the operating system.
`long`
`getOSThreadId()`
Returns the thread ID used by the operating system.
`RecordedThreadGroup`
`getThreadGroup()`
Returns the Java thread group, if available.
`boolean`
`isVirtual()`
Returns `true` if this is a virtual Thread, `false` otherwise.

### Methods declared in class RecordedObject

`getBoolean, getByte, getChar, getClass, getDouble, getDuration, getFields, getFloat, getInstant, getInt, getLong, getShort, getString, getThread, getValue, hasField, toString`
Modifier and Type
Method
Description
`final boolean`
`getBoolean(String name)`
Returns the value of a field of type `boolean`.
`final byte`
`getByte(String name)`
Returns the value of a field of type `byte`.
`final char`
`getChar(String name)`
Returns the value of a field of type `char`.
`final RecordedClass`
`getClass(String name)`
Returns the value of a field of type `Class`.
`final double`
`getDouble(String name)`
Returns the value of a field of type `double` or of another primitive type that is convertible to type `double` by a widening conversion.
`final Duration`
`getDuration(String name)`
Returns the value of a timespan field.
`List<ValueDescriptor>`
`getFields()`
Returns an immutable list of the fields for this object.
`final float`
`getFloat(String name)`
Returns the value of a field of type `float` or of another primitive type convertible to type `float` by a widening conversion.
`final Instant`
`getInstant(String name)`
Returns the value of a timestamp field.
`final int`
`getInt(String name)`
Returns the value of a field of type `int` or of another primitive type that is convertible to type `int` by a widening conversion.
`final long`
`getLong(String name)`
Returns the value of a field of type `long` or of another primitive type that is convertible to type `long` by a widening conversion.
`final short`
`getShort(String name)`
Returns the value of a field of type `short` or of another primitive type convertible to type `short` by a widening conversion.
`final String`
`getString(String name)`
Returns the value of a field of type `String`.
`final RecordedThread`
`getThread(String name)`
Returns the value of a field of type `Thread`.
`final <T> T`
`getValue(String name)`
Returns the value of the field with the given name.
`boolean`
`hasField(String name)`
Returns `true` if a field with the given name exists, `false` otherwise.
`final String`
`toString()`
Returns a textual representation of this object.

### Methods declared in class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`
Modifier and Type
Method
Description
`protected Object`
`clone()`
Creates and returns a copy of this object.
`boolean`
`equals(Object obj)`
Indicates whether some other object is "equal to" this one.
`protected void`
`finalize()`
Deprecated, for removal: This API element is subject to removal in a future version.
Finalization is deprecated and subject to removal in a future release.
`final Class<?>`
`getClass()`
Returns the runtime class of this `Object`.
`int`
`hashCode()`
Returns a hash code value for this object.
`final void`
`notify()`
Wakes up a single thread that is waiting on this object's monitor.
`final void`
`notifyAll()`
Wakes up all threads that are waiting on this object's monitor.
`final void`
`wait()`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
`final void`
`wait(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`
`wait(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.

## Method Details

### getOSName

public String getOSName()
Returns the thread name used by the operating system.

Returns:
  the OS thread name, or `null` if doesn't exist

### getOSThreadId

public long getOSThreadId()
Returns the thread ID used by the operating system.

Returns:
  the OS thread ID, or `-1` if doesn't exist

### getThreadGroup

public RecordedThreadGroup getThreadGroup()
Returns the Java thread group, if available.

Returns:
  the thread group, or `null` if doesn't exist

### getJavaName

public String getJavaName()
Returns the Java thread name, or `null` if doesn't exist.

Returns `java.lang.Thread.getName()` if the thread has a Java representation. `null` otherwise.

Returns:
  the Java thread name, or `null` if doesn't exist

### getJavaThreadId

public long getJavaThreadId()
Returns the Java thread ID, or `-1` if it's not a Java thread.

Returns:
  the Java thread ID, or `-1` if it's not a Java thread
See Also:
  - `Thread.threadId()`

### getId

public long getId()
Returns a unique ID for both native threads and Java threads that can't be reused within the lifespan of the JVM.

See `getJavaThreadId()` for the ID that is returned by `java.lang.Thread.threadId()`.

See `getOSThreadId()` for the ID that is returned by the operating system.

Returns:
  a unique ID for the thread

### isVirtual

public boolean isVirtual()
Returns `true` if this is a virtual Thread, `false` otherwise.

Returns:
  `true` if this is a virtual Thread, `false` otherwise
Since:
  21