windows — PHP Workers не работают параллельно

У меня проблема: рабочие потоки работают последовательно.
Это очень простой пример только для демонстрации проблемы.

Я инициализирую свои рабочие потоки и запускаю их. Он должен работать параллельно, однако результат выглядит так, как будто он обрабатывался последовательно.

PHP 5.6.12, Windows ОПЕРАЦИОННЫЕ СИСТЕМЫ, апаш сервер

DBWorker:
Что, конечно, расширяет класс pThreads Worker

class DBWorker extends Worker {

private $str;

public function __construct($str){
$this->str = $str;
}

public function run(){
$i=0;
while($i < 10) {
echo "$this->str: $i\n";
$i++;
}
}
}

инициализация:

private $DBWorker1;
private $DBWorker2;
private $DBWorker3;

/* ... */

public function __construct(){
$this->DBWorker1 = new DBWorker("worker1");
$this->DBWorker2 = new DBWorker("worker2");
$this->DBWorker3 = new DBWorker("worker3");
}

/* ... */

$this->DBWorker1->start();
$this->DBWorker2->start();
$this->DBWorker3->start();


$i=0;
while($i < 10) {
echo "parent: $i\n";
$i++;
}

var_dump($this->DBWorker1->shutdown());
var_dump($this->DBWorker2->shutdown());
var_dump($this->DBWorker3->shutdown());

Результат:

parent: 0
parent: 1
parent: 2
...
parent: 6
worker1: 0
worker1: 1
worker1: 2
...
worker1: 59
worker2: 0
worker2: 1
worker2: 2
...
worker2: 59
worker3: 0
worker3: 1
worker3: 2
...
worker3: 59
parent: 7
parent: 8
parent: 9
bool(true)
bool(true)
bool(true)

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]