La classe Thread

(PECL pthreads >= 2.0.0)

Introduction

Quand la méthode start d'un Thread est appelée, le code de la méthode run sera exécuté de façon parallÚle dans un Thread séparé.

AprÚs l'exécution de la méthode run, le Thread se terminera immédiatement, il sera rattaché au Thread d'origine par la suite.

Avertissement

S'appuyer sur le moteur pour dĂ©terminer quand un Thread sera rattachĂ© peut provoquer un comportement non dĂ©sirĂ©. Le dĂ©veloppeur doit ĂȘtre explicite tant que possible.

Synopsis de la classe

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

Sommaire

add a note

User Contributed Notes 2 notes

up
2
german dot bernhardt at gmail dot com ¶
10 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();

?>
up
-1
german dot bernhardt at gmail dot com ¶
12 years ago
<?php

class 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();
}

?>