如果可能,请提供帮助。我打算从数据库中提取 X 数量的行,将它们分成 20 个数组的数组,然后将它们传递给一个线程进行同时处理。
为了确保进程同时工作,我创建了一个快速线程,该线程回显线程号,然后计数为 20。我希望看到像“1 at 1”然后“2 at 1”这样的结果。相反,在第二个线程开始执行之前,我看到第一个线程计数为 20。即“1 at 1”...“1 at 20”然后只有“2 at 1”。
<?php
class helloworld extends Thread {
public function __construct($arg){
$this->arg = $arg;
}
public function run(){
if($this->arg){
for ($i=1;$i<=20;$i++){
echo $this->arg ." AT ";
echo $i." ";
sleep(1);
}
}
}
}
?>
然后调用它我使用
for ($i=1;$i<=$num_threads;$i++){
$thread[$i] = new helloworld($i);
if($thread[$i]->start())
$thread[$i]->join();
}
我所看到的正确吗?还是我在这里做一些愚蠢的事情?
谢谢
抢