php

PHP多线程编程和非阻塞实现方法

2018-07-14  本文已影响530人  liamu

PHP多线程


线程概述

线程是操作系统能够进行调度的最小单位

什么时候该使用线程
用线程的好与坏
扩展安装

PHP 默认并不支持多线程,要使用多线程需要安装 pthread 扩展,而要安装 pthread 扩展,必须使用 --enable-maintainer-zts 参数重新编译 PHP,这个参数是指定编译 PHP 时使用线程安全方式。

./configure --enable-maintainer-zts --with-tsrm-pthreads

实例
class Request extends Thread {
    public $url;
    public $response;
    public function __construct($url) {
        $this->url = $url;
    }
    public function run() {
        $this->response = file_get_contents($this->url);
    }
}
$chG = new Request("www.google.com");
$chB = new Request("www.baidu.com");
$chG ->start();
$chB ->start();
$chG->join();
$chB->join();

$gl = $chG->response;
$bd = $chB->response;

PHP非阻塞

echo "program start...";
fastcgi_finish_request();

sleep(1);
echo 'debug1...';

sleep(10);
echo 'debug2...';
上一篇下一篇

猜你喜欢

热点阅读