
php通过扩展pthreads也可以支持线程上的 *** 作,在mac下可以通过brew安装pthreads扩展。线程类要继承Thread类,而后实现run方法。
class computer extends Thread {
public $id
public $runing = false
public $params = null
public function __construct($id) {
$this->id = $id
$this->runing = true
}
public function run() {
while ($this->runing) {
if (is_null($this->params)) {
echo "线程({$this->id})等待任务...\n"
} else {
echo "线程({$this->id}) 收到任务参数::{$this->params}.\n"
$this->params = null
}
sleep(1)
}
}
}
不建议在PHP-FPM里使用多线程,写不好会导致工作进程频繁崩溃.使用PHP就应该转变思路,不要照搬Java那一套.异步处理耗时任务也不一定要使用多线程.你完全可以在PHP中用 pclose(popen('/path/to/task.php &', 'r'))异步打开一个进程处理耗时的任务,PHP-FPM则返回信息给浏览器提示"正在处理",task.php这个cli脚本处理完成任务后,把数据库当前任务的状态标记为"完成",前端AJAX定时轮询到这个任务为"完成",则提示用户即可.
//查看数组这里有2个函数print_r 和 var_dump其中var_dump会输出数组值的数据类型。你试一试使用var_dump($rq)或者print_r($rq)如果格式不是很好看,在上面的语句前面加上echo "<pre>"这样数组就能按格式输出,方便查看。楼主我也是刚刚在后盾人学会的,你快去学习一下吧,对你会有很大的帮助.
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)