Articles of pthreads

Сохранение замыканий в потоке не выполняется

Я пытаюсь использовать закрытие в качестве обратного вызова, как только поток выполняется. Однако я сталкиваюсь с тем, что кажется пределом / неудачей PHP или расширения pthread. Мой стек dev работает на Win7 x64 с PHP 5.5.3 x86 TS, pthread версии 0.44. Следующий код работает: class Test { public $callbackVar; } $test = new Test(); $callbackVar […]

PHP pThreads IIS: неожиданный вывод в браузере

Я пытаюсь запустить php-скрипт многопоточным с использованием PHP pThreads в среде IIS 7 PHP 5.6 x86 (потокобезопасная) среда. Я создал проблему github, но я не слышал назад, и хотя некоторые другие кодеры здесь, возможно, столкнулись с одной и той же проблемой. PHP работает нормально и скрипты, которые не требуют выполнения pThreads, как обычно. Однако, когда […]

Класс Wrapper Thread для функции с переменными аргументами в PHP

Идея здесь заключается в создании класса, который строит с помощью функции и массива параметров и вызовов, которые функционируют в новом потоке. Это мой класс: class FunctionThread extends Thread { public function __construct($fFunction, $aParameters){ $this->fFunction = $fFunction; $this->aParameters = $aParameters; } public function run(){ $this->fFunction($this->aParmeters[0], $this->aParmeters[1], …); } } Очевидно, что функция запуска неверна, что подводит […]

Почему некоторые операции с потоковыми массивами в PHP, похоже, не работают?

У меня есть этот класс потоков, который использует PHP-расширение pthread : class Task extends Thread { protected $arr = array(); public function run() { $this->arr[] = 1; $this->arr[] = 2; $this->arr[] = 3; var_dump($this->arr); } } $thread = new Task(); $thread->start(); $thread->join(); Результат необъяснимо показывает пустой массив. Может кто-нибудь кратко объяснить, почему?

PHP – доступ к глобальной переменной во всех php-потоках

Я использую pthreads для своего PHP-приложения. Я хочу, чтобы мои потоки читали / записывали (совместно используют) общую переменную PHP, т. Е. Поддерживали общее состояние переменной для всех потоков в пользовательском сеансе. Я не нашел решения. Пожалуйста, также дайте любой пример сценария с предлагаемым решением.

Как поток PHP хранит свои данные?

Поэтому я занимался поиском в Интернете и изучением PHP pthreads3 и тем, как они должны хранить данные. (Вернее, как это не так). Мне кажется, что единственный способ для потока правильно сохранить свои данные – создать новый объект Threaded и отправить его в поток. Затем поток может использовать этот объект Threaded для хранения практически любых данных. […]

PHP pthreads и SQLite3

Обновить Я нашел, что это не проблема SQLite. Посмотри на это Code1 <?php class Test { protected $member; public function __construct($member = null) { $this->member = $member; $this->member->text = 'changed text'; } } class Text { public $text = 'this is text'; } $text = new Text(); $test = new Test($text); echo $text->text.PHP_EOL; Output1 changed […]

Сериализация «Закрытие» не допускается с помощью php pthreads

Мне нужна небольшая помощь с pthreads в php. У меня есть следующий класс namespace le\Thread; class Thread extends \Thread { protected $method; protected $params; protected $result = null; protected $joined = false; /** * Provide a passthrough to call_user_func_array **/ public function __construct($method, $params) { $this->method = $method; $this->params = $params; } /** * The […]

Как получить доступ к глобальной переменной в функции запуска pthread в php

Мне трудно получить доступ к переменной глобально в функции прогона pthread, могу ли я узнать, как это сделать? class Promise extends Thread { public function __construct() { global $myVar; echo "inside construct function variable " . $myVar; } public function run() { global $myVar; echo "inside run function variable " . $myVar; } } Я […]

Темы для PHP, разделяющие объект центрального сокета

Я создаю многопоточное приложение PHP CLI, которое говорит с сервером через сокеты. Цель состоит в том, чтобы приложение только создавало одно соединение с сервером (через отдельный класс), а затем разрешало дочерним потокам использовать установленный объект сокета. Не удалось выполнить следующий код: <?php /** * Test child class **/ class test extends Thread { private $server; […]