PHP安装threads多线程扩展基础教程


Posted in PHP onNovember 17, 2015

一、下载pthreads扩展

下载地址:http://windows.php.net/downloads/pecl/releases/pthreads

二、判断PHP是ts还是nts版

通过phpinfo(); 查看其中的 Thread Safety 项,这个项目就是查看是否是线程安全,如果是:enabled,一般来说应该是ts版,否则是nts版。

三、根据PHP ts\nts版选择对应pthreads的版本

本人php版本是5.4.17的所以下载php_pthreads-0.1.0-5.4-ts-vc9-x86.zip文件包,其中0.1.0表示为当前pthreads版本号,5.4为php版本号,ts就是之前判断php对应的ts、nts版,vs9代表是Visual Studio 2008 compiler编译器编译的,最后的x86代表的是32位的版本。

四、下载pthreads扩展

下载地址:http://windows.php.net/downloads/pecl/releases/pthreads

五、安装pthreads扩展

复制php_pthreads.dll 到目录 bin\php\ext\ 下面。
复制pthreadVC2.dll 到目录 bin\php\ 下面。
复制pthreadVC2.dll 到目录 C:\windows\system32 下面。
打开php配置文件php.ini。在后面加上extension=php_pthreads.dll
提示!Windows系统需要将 pthreadVC2.dll 所在路径加入到 PATH 环境变量中。我的电脑--->鼠标右键--->属性--->高级--->环境变量--->系统变量--->找到名称为Path的--->编辑--->在变量值最后面加上pthreadVC2.dll的完整路径(本人的为C:\WINDOWS\system32\pthreadVC2.dll)。

六、添加thread类

<?php
class Thread
{
  var $hooks = array();
  var $args = array();
  function thread()
  {
  }
  function addthread($func)
  {
    $args = array_slice(func_get_args(), 1);
    $this->hooks[] = $func;
    $this->args[] = $args;
    return true;
  }
  function runthread()
  {
    if(isset($_GET['flag']))
    {
      $flag = intval($_GET['flag']);
    }
    if($flag || $flag === 0)
    {
      call_user_func_array($this->hooks[$flag], $this->args[$flag]);
    }
    else
    {
      for($i = 0, $size = count($this->hooks); $i < $size; $i++)
      {
        $fp=fsockopen($_SERVER['HTTP_HOST'],$_SERVER['SERVER_PORT']);
        if($fp)
        {
          $out = "GET {$_SERVER['PHP_SELF']}?flag=$i HTTP/1.1rn";
          $out .= "Host: {$_SERVER['HTTP_HOST']}rn";
          $out .= "Connection: Closernrn";
          fputs($fp,$out);
          fclose($fp);
        }
      }
    }
  }
}

七、测试pthreads扩展

include('thread.php');
class AsyncOperation extends Thread {
  public function __construct($arg){
    $this->arg = $arg;
  }
  public function run(){
    if($this->arg){
      printf("Hello %s\n", $this->arg);
    }
  }
}
$thread = new AsyncOperation("World");
if($thread->start())
  $thread->join();

以上内容给大家介绍了PHP安装threads多线程扩展基础教程,希望大家喜欢。

PHP 相关文章推荐
很实用的一个完整email发送程序
Oct 09 PHP
中篇:安装及配置PHP
Dec 13 PHP
php cout&amp;lt;&amp;lt;的一点看法
Jan 24 PHP
五款常用mysql slow log分析工具的比较分析
May 22 PHP
php mssql扩展SQL查询中文字段名解决方法
Oct 15 PHP
PHP自动重命名文件实现方法
Nov 04 PHP
thinkphp缓存技术详解
Dec 09 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
Aug 28 PHP
swoole和websocket简单聊天室开发
Nov 18 PHP
浅谈PHP进程管理
Mar 08 PHP
Laravel使用swoole实现websocket主动消息推送的方法介绍
Oct 20 PHP
Laravel框架Blade模板简介及模板继承用法分析
Dec 03 PHP
超详细的php用户注册页面填写信息完整实例(附源码)
Nov 17 #PHP
教大家制作简单的php日历
Nov 17 #PHP
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
Nov 16 #PHP
PHP Yii框架之表单验证规则大全
Nov 16 #PHP
Yii2.0高级框架数据库增删改查的一些操作
Nov 16 #PHP
yii添删改查实例
Nov 16 #PHP
PHP的运行机制与原理(底层)
Nov 16 #PHP
You might like
浅析十款PHP开发框架的对比
2013/07/05 PHP
php提示Failed to write session data错误的解决方法
2014/12/17 PHP
Zend Framework教程之配置文件application.ini解析
2016/03/10 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
2017/05/05 PHP
Js动态添加复选框Checkbox的实例方法
2013/04/08 Javascript
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
2013/10/11 Javascript
Jquery插件easyUi实现表单验证示例
2015/12/15 Javascript
简单讲解jQuery中的子元素过滤选择器
2016/04/18 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
正则表达式,替换所有HTML标签的简单实例
2016/11/28 Javascript
快速入门Vue
2016/12/19 Javascript
微信小程序中多个页面传参通信的学习与实践
2017/05/05 Javascript
Angular实现较为复杂的表格过滤,删除功能示例
2017/12/23 Javascript
angularjs实现对表单输入改变的监控(ng-change和watch两种方式)
2018/08/29 Javascript
js根据json数据中的某一个属性来给数据分组的方法
2018/10/08 Javascript
Element input树型下拉框的实现代码
2018/12/21 Javascript
解决cordova+vue 项目打包成APK应用遇到的问题
2019/05/10 Javascript
深入学习JavaScript中的bom
2019/05/27 Javascript
javascript设计模式 ? 外观模式原理与用法实例分析
2020/04/15 Javascript
vue 表单输入框不支持focus及blur事件的解决方案
2020/11/17 Vue.js
[00:27]DOTA2荣耀之路2:Patience from zhou!
2018/05/24 DOTA
使用matplotlib画散点图的方法
2018/05/25 Python
深入理解Django自定义信号(signals)
2018/10/15 Python
django 外键model的互相读取方法
2018/12/15 Python
Python实现连接MySql数据库及增删改查操作详解
2019/04/16 Python
matplotlib制作雷达图报错ValueError的实现
2021/01/05 Python
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
Cotton On美国网站:澳洲时装连锁品牌
2016/10/25 全球购物
iHerb中文官网:维生素、保健品和健康产品
2018/11/01 全球购物
会计毕业自我鉴定
2014/02/05 职场文书
大班开学家长寄语
2014/04/04 职场文书
土地转让协议书
2014/09/27 职场文书
停发工资证明范本
2015/06/12 职场文书
蔬果开业典礼发言稿应该怎么写?
2019/09/03 职场文书
Python之Matplotlib绘制热力图和面积图
2022/04/13 Python
MySQL选择合适的备份策略和备份工具
2022/06/01 MySQL