# Thread<T> class final

Emulates Java's `Thread` class using Dart's `Isolate`.

A Thread represents a separate unit of execution and encapsulates a Dart `Isolate` under the hood. Each Thread has its own memory space and runs independently from others.

This class provides Java-style threading behaviors such as:

- `start()`
- `join()`
- `interrupt()`
- static utilities like `sleep()`, `currentThread()`, and `getThreadLocal(id)`

Example usage:

    void entry(ThreadMessage message) {
      print("Thread started with data: ${message.data}");
      message.replyPort.send('done');
    }

    void main() async {
      final thread = Thread(entry, initialMessage: 'Hello', debugName: 'worker-1');
      await thread.start();
      await thread.join();
      print('Thread completed.');
    }

Annotations
  - @Generic(Thread)

## Constructors

Thread.new(dynamic _entryPoint(ThreadMessage), {dynamic initialMessage, String? debugName})
  Emulates Java's `Thread` class using Dart's `Isolate`.

## Properties

hashCode → int
  The hash code for this object.
  no setter inherited
initialMessage → dynamic
  final
isAlive → bool
  Returns `true` if the underlying Isolate is still running.
  no setter
runtimeType → Type
  A representation of the runtime type of the object.
  no setter inherited

## Methods

interrupt({int priority = Isolate.immediate}) → void
  Forcefully terminates the underlying Isolate.
join() → Future<void>
  Waits for the Isolate to complete execution.
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a nonexistent method or property is accessed.
  inherited
start() → Future<void>
  Starts execution of this Thread in a new Isolate.
toString() → String
  A string representation of this object.
  inherited

## Operators

operator ==(Object other) → bool
  The equality operator.
  inherited

## Static Properties

currentThreadIsolate → Isolate
  Returns the Isolate object representing the currently executing isolate.
  no setter
currentThreadName → String?
  Returns the name of the currently executing isolate.
  no setter

## Static Methods

currentThread() → Thread?
  Returns the Thread instance representing the currently executing Isolate.
getThreadLocal<T>(int id) → LocalThread<T>
  Retrieves a LocalThread instance by its unique ID.
sleep(Duration duration) → Future<void>
  Asynchronous sleep operation for the current isolate.