PHP 8.6.0 Beta 1 is available for testing

Класс Thread

(PECL pthreads >= 2.0.0)

Введение

Когда вызван стартовый метод Thread, код метода run будет запущен в отдельном потоке, параллельно.

После отработки метода run, Thread сразу же завершит работу. Он будет присоединён путём создания Thread в нужное время.

Внимание

Если полагаться на движок для определения, когда Thread будет присоединён, можно столкнуться с неожиданным поведением. Поэтому необходимо, по возможности, управлять присоединением в явном виде.

Обзор класса

class Thread extends Threaded implements Countable , Traversable , ArrayAccess {
/* Методы */
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
/* Наследуемые методы */
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
}

Содержание

Нашли ошибку?

ИнструкцияИсправлениеСообщение об ошибке
+Добавить

Примечания пользователей 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
-2
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();
}
?>
+Добавить

AltStyle によって変換されたページ (->オリジナル) /