Показать страницуИстория страницыСсылки сюдаCopy this pageExport to MarkdownODT преобразованиеНаверх Вы загрузили старую версию документа! Сохранив её, вы создадите новую текущую версию с этим содержимым. Медиафайлы{{tag>php languages extension}} ====== Threading for PHP - Share Nothing ====== * https://github.com/krakjoe/pthreads ([[https://github.com/krakjoe/pthreads/tree/PHP5|5.x]] - [[https://github.com/krakjoe/pthreads|7.x]]) * https://github.com/krakjoe/pthreads-autoloading-composer * https://github.com/krakjoe/pthreads-polyfill ===== Примеры ===== <code php> $worker = new Worker(); $task = new class extends Threaded { public static $a; }; $task::$a = new class extends Threaded {}; $worker->start(); $worker->stack($task); $worker->shutdown(); </code> <code php> $task = new class extends Threaded { public static $a; }; $task::$a = new class extends Threaded {}; $pool = new Pool(2); $pool->submit($task); $pool->shutdown(); </code> <code php> <?php function demanding(...$params) { /* you have parameters here */ return array(rand(), rand()); } class Task extends Collectable { public function __construct(Threaded $result, $params) { $this->result = $result; $this->params = $params; } public function run() { $this->result[] = demanding(...$this->params); } protected $result; protected $params; } $pool = new Pool(16); $result = new Threaded(); while (@$i++<16) { $pool->submit( new Task($result, $argv)); } $pool->shutdown(); var_dump($result); ?> </code> ===== Документация ===== * http://docs.php.net/manual/ru/book.pthreads.php ===== Статьи ===== * https://habrahabr.ru/post/300952/ * [[https://habrahabr.ru/post/193270/|PHP IPC — Межпроцессное взаимодействие в PHP]]СохранитьПросмотрРазличияОтменить Сводка изменений Примечание: редактируя эту страницу, вы соглашаетесь на использование своего вклада на условиях следующей лицензии: CC0 1.0 Universal