# The Thread class

(PECL pthreads >= 2.0.0)

## Introduction

When the start method of a Thread is invoked, the run method code will be executed in separate Thread, in parallel.

After the run method is executed the Thread will exit immediately, it will be joined with the creating Thread at the appropriate time.

Warning

Relying on the engine to determine when a Thread should join may cause undesirable behaviour; the programmer should be explicit, where possible.

## Class synopsis

class Thread extends Threaded implements Countable, Traversable, ArrayAccess {
/* Methods */
public getCreatorId(): int
public static getCurrentThread(): Thread
public static getCurrentThreadId(): int
public getThreadId(): int
public isJoined(): bool
public isStarted(): bool
public join(): bool
public start(int `$options` = ?): bool
/* Inherited methods */
public Threaded::chunk(int `$size`, bool `$preserve`): array
public Threaded::count(): int
public Threaded::extend(string `$class`): bool
public Threaded::isRunning(): bool
public Threaded::isTerminated(): bool
public Threaded::merge(mixed `$from`, bool `$overwrite` = ?): bool
public Threaded::notify(): bool
public Threaded::notifyOne(): bool
public Threaded::pop(): bool
public Threaded::run(): void
public Threaded::shift(): mixed
public Threaded::synchronized(Closure `$block`, mixed `...$args`): mixed
public Threaded::wait(int `$timeout` = ?): bool
}

## Table of Contents

- Thread::getCreatorId — Identification
- Thread::getCurrentThread — Identification
- Thread::getCurrentThreadId — Identification
- Thread::getThreadId — Identification
- Thread::isJoined — State Detection
- Thread::isStarted — State Detection
- Thread::join — Synchronization
- Thread::start — Execution

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open