• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    实例讲解php实现多线程

    我们首先来看一个示例

    ?php
     
    class execMulti {
     function MultithreadTest {
      exec("php static_massive.php > /dev/null ");
     
      echo "处理完成了";
     }
    }
    ?>

    当执行上述操作时,即使在耗时的处理结束之前也显示处理完成。

    exec("php static_massive.php > /dev/null ");

    由于“ > / dev / null& ”返回的值丢失,我们不会等待响应。

    因此,处理完成指示比耗时处理更快。

    但是,该方法不知道耗时的处理何时结束。

    不要忘记考虑采取日志的执行,登录DB等方法向用户传递执行结果。

    用于多线程的方法(pthreads)

    最后,介绍使用PHP扩展模块pthreads的方法。

    它可以比上面使用exec的方法更简单。

    ①配置环境并安装php

    请使用vagrant等准备喜欢的环境。

    php 需要使用线程安全版本,这是多线程和安全的实现。

    从官方下载线程安全版本的 PHP。

    访问以下内容并从图中的红框下载。

    http://www.php.net/downloads.php

    此外,对于线程安全安装,您需要使用configure选项指定-enable-maintainer-zts。

    ./configure --enable-maintainer-zts

    根据需要,也可以安上Apache和mysql的选项。

    用以下命令确认了php的版本就可以了。

    php -v

    ②pthreads的安装

    我们来下载zip格式。

    https://github.com/krakjoe/pthreads/archive/master.zip

    解压zip,移动到解压缩文件,然后执行phpize。

    如果您在PHP模块列表上运行pthreads,则可以执行以下操作。

    php -m

    根据环境的不同,这一块的设定也会有所不同,可以用环境名+pthreads等进行检索来寻找信息。

    ③尝试使用多线程

    示例如下

    ?php
    class pthreadsTest extends Thread {
     public function run () {
      sleep(5);
     }
    }
    $ts1 = new pthreadsTest();
    $ts1->start(); 
    $ts2 = new pthreadsTest();
    $ts2->start(); 
    ?>

    因为sleep(5)被调用两次,所以需要10秒,但实际上它将是5秒。

    您可能感兴趣的文章:
    • 浅谈php使用curl模拟多线程发送请求
    • php使用curl_init()和curl_multi_init()多线程的速度比较详解
    • PHP多线程模拟实现秒杀抢单
    • PHP7多线程搭建教程
    • PHP中多线程的两个实现方法
    • php与python实现的线程池多线程爬虫功能示例
    • php多线程并发实现方法
    • php中foreach结合curl实现多线程的方法分析
    • 如何用PHP实现多线程编程
    上一篇:php中访问修饰符的知识点总结
    下一篇:PHP中数组转换为SimpleXML教程
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    实例讲解php实现多线程 实例,讲解,php,实现,多,线程,