Thread クラス

(PECL pthreads >= 2.0.0)

はじめに

このオブジェクトの start メソッドが呼ばれると、run メソッドのコードが個別のスレッドで並列処理されます。

run メソッドの実行後は Thread はすぐに終了し、作成元のスレッドに適切な時期に join します。

警告

Thread をいつ join させるのかをエンジンに決めさせていると、予期せぬ振る舞いを引き起こすことがあります。 可能な限り、プログラマーが明示的に指定するようにしましょう。

クラス概要

class Thread extends Threaded implements Countable, Traversable, ArrayAccess {
/* メソッド */
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
/* 継承したメソッド */
public Threaded::chunk(int $size, bool $preserve): array
public Threaded::extend(string $class): bool
public Threaded::merge(mixed $from, bool $overwrite = ?): bool
public Threaded::synchronized(Closure $block, mixed ...$args): mixed
public Threaded::wait(int $timeout = ?): bool
}

目次

add a note

User Contributed Notes 2 notes

up
16
german dot bernhardt at gmail dot com
11 years ago
<?phpclass workerThread extends Thread { public function __construct($i){  $this->i=$i; } public function run(){  while(true){   echo $this->i;   sleep(1);  } }}for($i=0;$i<50;$i++){ $workers[$i]=new workerThread($i); $workers[$i]->start();}?>
up
4
german dot bernhardt at gmail dot com
9 years ago
<?php
# ERROR GLOBAL VARIABLES IMPORT

$tester=true;

function tester(){
 global $tester;
 var_dump($tester);
}

tester(); // PRINT -> bool(true)

class test extends Thread{
 public function run(){
  global $tester;
  tester(); // PRINT -> NULL
 }
}
$workers=new test();
$workers->start();

?>
To Top