PHP Pthreads и загрузка процессора

Я пытаюсь найти лучший способ использовать pthreads с PHP и, возможно, я не искал в нужных местах. Я написал сценарий с примером из https://www.sitepoint.com/parallel-programming-pthreads-php-fundamentals/

Когда я его реализовал, все выглядело нормально, но когда я действительно увеличил время ожидания и увеличил количество итераций, я, кажется, использовал 100% одного процессора при выполнении этого сценария вместо распределения доступных процессоров. Иногда загрузка переключается на другой процессор, но в основном останавливается на одном процессоре и продолжает работать на 100% на другом процессоре. Это предполагаемая функциональность или, может быть, я неправильно скомпилировал pthreads с 7.2.10? Код и скриншоты ниже:

<?php
class Task extends Threaded{
private $value;

public function __construct(int $i){
$this->value = $i;
}

public function run(){
// Just to get longer running execution on
// odd numbers
if($this->value % 2 == 0){
$t = rand(250000, 1000000);
} else {
$t = rand(250000, 10000000);
}
usleep($t);
echo "Task:{$this->value}\t($t)\n";
}
}

$pool = new Pool(8);

for ($i = 0; $i < 1024; ++$i) {
$pool->submit(new Task($i));
}

while ($pool->collect());

$pool->shutdown();

Код и загрузка

Я делаю что-то неправильно? или это имеет смысл для pthreads для php?

0

Решение

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

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

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

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