实例讲解php实现多线程


Posted in PHP onJanuary 27, 2019

我们首先来看一个示例

<?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

实例讲解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 相关文章推荐
PHP个人网站架设连环讲(四)
Oct 09 PHP
php中的MVC模式运用技巧
May 03 PHP
php 防止单引号,双引号在接受页面转义
Jul 10 PHP
深入file_get_contents函数抓取内容失败的原因分析
Jun 25 PHP
php检测网页是否被百度收录的函数代码
Oct 09 PHP
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
May 07 PHP
PHP中curl_setopt函数用法实例分析
Apr 16 PHP
composer.lock文件的作用
Feb 03 PHP
php set_include_path函数设置 include_path 配置选项
Oct 30 PHP
Zend Framework路由器用法实例详解
Dec 11 PHP
DWZ+ThinkPHP开发时遇到的问题分析
Dec 12 PHP
用php实现分页效果的示例代码
Dec 10 PHP
php中访问修饰符的知识点总结
Jan 27 #PHP
实例讲解php将字符串输出到HTML
Jan 27 #PHP
PHP常见加密函数用法示例【crypt与md5】
Jan 27 #PHP
PHP基于GD2函数库实现验证码功能示例
Jan 27 #PHP
PHP的PDO事务与自动提交
Jan 24 #PHP
PHP的PDO连接讲解
Jan 24 #PHP
PHP的PDO预定义常量讲解
Jan 24 #PHP
You might like
有关JSON以及JSON在PHP中的应用
2010/04/09 PHP
解析thinkphp基本配置 convention.php
2013/06/18 PHP
解析PHP可变函数的经典用法
2013/06/20 PHP
PHP实现检测客户端是否使用代理服务器及其匿名级别
2015/01/07 PHP
Yii实现简单分页的方法
2016/04/29 PHP
JavaScript使用prototype定义对象类型
2007/02/07 Javascript
理解Javascript_11_constructor实现原理
2010/10/18 Javascript
jQuery学习笔记之jQuery的动画
2010/12/22 Javascript
Prototype源码浅析 String部分(一)之有关indexOf优化
2012/01/15 Javascript
转换字符串为json对象的方法详解
2013/11/29 Javascript
javascript操作css属性
2013/12/30 Javascript
jQuery获取和设置表单元素的方法
2014/02/14 Javascript
解决node-webkit 不支持html5播放mp4视频的方法
2015/03/11 Javascript
js实现网站最上边可关闭的浮动广告条代码
2015/09/04 Javascript
jQuery使用cookie与json简单实现购物车功能
2016/04/15 Javascript
实用jquery操作表单元素的简单代码
2016/07/04 Javascript
Jquery-data的三种用法
2017/04/18 jQuery
Angularjs验证用户输入的字符串是否为日期时间
2017/06/01 Javascript
vue bootstrap小例子一枚
2017/06/09 Javascript
Vuex利用state保存新闻数据实例
2017/06/28 Javascript
小程序ios音频播放没声音问题的解决
2018/07/11 Javascript
python下如何让web元素的生成更简单的分析
2008/07/17 Python
Python 实现删除某路径下文件及文件夹的实例讲解
2018/04/24 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
详解字符串在Python内部是如何省内存的
2020/02/03 Python
Python3列表List入门知识附实例
2020/02/09 Python
python绘制分布折线图的示例
2020/09/24 Python
Python实现小黑屋游戏的完整实例
2021/01/06 Python
娱乐地球:Entertainment Earth
2020/01/08 全球购物
护士个人简历自荐信
2013/10/18 职场文书
退伍老兵事迹材料
2014/01/31 职场文书
剪彩仪式主持词
2014/03/19 职场文书
3分钟英语演讲稿
2014/04/29 职场文书
2015年度对口支援工作总结
2015/07/22 职场文书
《认识钟表》教学反思
2016/02/16 职场文书
制作能在nginx和IIS中使用的ssl证书
2021/06/21 Servers