hi,你好!欢迎访问本站!登录
本站由简数采集腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - PHP问题 - 正文 请牢记本站网址www.sosophp.cn

php多线程怎样完成【php题目】

2019-11-26PHP问题搜搜PHP网81°c
A+ A-
PHP默许并不支撑多线程,要运用多线程须要装置pthread扩大,而要装置pthread扩大,必需运用--enable-maintainer-zts参数从新编译PHP,这个参数是指定编译PHP时运用线程平安体式格局。

PHP 完成

PHP 完成的线程平安主如果运用 TSRM 机制对 全局变量和静态变量举行了断绝,将全局变量和静态变量 给每一个线程都复制了一份,各线程运用的都是主线程的一个备份,从而防止了变量争执,也就不会涌现线程平安问题。(引荐进修:PHP视频教程)

PHP 对多线程的封装保证了线程平安,顺序员不必斟酌对全局变量加种种锁来防止读写争执了,同时也减少了失足的时机,写出的代码越发平安。

但由此致使的是,子线程一旦最先运转,主线程便没法再对子线程运转细节举行调整了,线程肯定程度上失去了线程之间经由过程全局变量举行音讯通报的才能。

同时 PHP 开启线程平安选项后,运用 TSRM 机制分派和运用变量时也会有分外的消耗,所以在不须要多线程的 PHP 环境中,运用 PHP 的 ZTS (非线程平安) 版本就好。

实例代码

下面是一个线程类,用来要求某一接口。接下来依据它写两个多线程的运用实例:

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多线程怎样完成的细致内容,更多请关注ki4网别的相干文章!

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  选择分享方式
  移步手机端
php多线程怎样完成【php题目】

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
标签: