PHP Pthread和CPU使用率

时间:2018-10-02 04:40:56

标签: php php-pthread

我正在尝试找出在PHP中使用pthreads的最佳方法,也许我没有找到合适的位置。我写了一个脚本,并摘自https://www.sitepoint.com/parallel-programming-pthreads-php-fundamentals/

当我实现它时,一切看起来都很正常,但是当我真正提高睡眠时间并增加迭代次数时,我似乎在运行此脚本时正在使用一个处理器的100%,而不是分配可用的处理器。有时,负载会切换到另一个处理器,但是它基本上会停止在一个处理器上运行,并继续100%在另一个处理器上运行。这是预期的功能,还是我在7.2.10中编译了pthreads错误?下面的代码和屏幕截图:

<?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();

Code and Load

我做错什么了吗?还是对php的pthreads有意义?

0 个答案:

没有答案