pthreads表现不像预期

时间:2015-09-03 22:30:14

标签: php multithreading pthreads

我目前看到的代码如下:

<?php

class workerThread extends Thread {
    public function __construct($i) {
        $this->i = $i;
    }

    public function run() {
        echo $this->i . " ";
        sleep(1);
        echo $this->i . " ";
    }
}

for ($i=1; $i<=5; $i++) {
    $workers[$i]= new workerThread($i);
    $workers[$i]->start();
}

?>

我期望这样做是回声1 2 3 4 5,等待1秒,然后回显1 2 3 4 5。但是,它会等待整个程序完成,然后吐出1 1 2 2 3 3 4 4 5 5。由于某种原因,它不是异步行为。我做错了什么?

修改:使用usleep(1000000)代替sleep(1)

执行相同的操作

1 个答案:

答案 0 :(得分:0)

这是来自PHP API参考的复制粘贴:

  

执行run方法后,Thread将立即退出   将在适当的时候与创建线程连接。

我认为,引擎认为加入这些线程的适当时间是在下一次循环迭代时。