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 相关文章推荐
用PHP连接MySQL代码的参数说明
Jun 07 PHP
PHP伪静态页面函数附使用方法
Jun 20 PHP
php 远程图片保存到本地的函数类
Dec 08 PHP
快速开发一个PHP扩展图文教程
Dec 12 PHP
php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
Nov 02 PHP
PHP 过滤页面中的BOM(实现代码)
Jun 29 PHP
php断点续传之如何分割合并文件
Mar 22 PHP
通过Email发送PHP错误的方法
Jul 20 PHP
smarty模板数学运算示例
Dec 11 PHP
PHP连接MYSQL数据库的3种常用方法
Feb 27 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
Jul 10 PHP
php实现自动生成验证码的实例讲解
Nov 17 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利用COM对象访问SQLServer、Access
2006/10/09 PHP
Php Ctemplate引擎开发相关内容
2012/03/03 PHP
php根据命令行参数生成配置文件详解
2019/03/15 PHP
jquery判断checkbox(复选框)是否被选中的代码
2010/10/20 Javascript
javascript中直接写php代码的方法
2013/07/31 Javascript
jQuery列表拖动排列具体实现
2013/11/04 Javascript
微信小程序 WXDropDownMenu组件详解及实例代码
2016/10/24 Javascript
Bootstrap table使用方法详细介绍
2016/12/09 Javascript
从parcel.js打包出错到选择nvm的全部过程
2018/01/23 Javascript
解决VUE框架 导致绑定事件的阻止冒泡失效问题
2018/02/24 Javascript
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
2018/12/03 Javascript
微信小程序实现swiper切换卡内嵌滚动条不显示的方法示例
2018/12/20 Javascript
js神秘的电报密码 哈弗曼编码实现
2019/09/10 Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
2020/08/06 Javascript
vue点击按钮实现简单页面的切换
2020/09/08 Javascript
jQuery+ajax实现用户登录验证
2020/09/13 jQuery
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
Python的字典和列表的使用中一些需要注意的地方
2015/04/24 Python
Python实现将doc转化pdf格式文档的方法
2018/01/19 Python
Django视图和URL配置详解
2018/01/31 Python
python使用matplotlib库生成随机漫步图
2018/08/27 Python
对Python subprocess.Popen子进程管道阻塞详解
2018/10/29 Python
完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误
2020/04/01 Python
Python3爬虫中pyspider的安装步骤
2020/07/29 Python
AC Lens:购买隐形眼镜
2017/02/26 全球购物
eBay加拿大站:eBay.ca
2019/06/20 全球购物
酒店前台接待岗位职责
2013/12/03 职场文书
给面试官的感谢信
2014/02/01 职场文书
移风易俗倡议书
2014/04/15 职场文书
十周年庆典策划方案
2014/06/03 职场文书
公司人事专员岗位职责
2014/08/11 职场文书
体育专业大学生职业生涯规划范文:打造自己的运动帝国
2014/09/12 职场文书
社区四风存在问题及整改措施
2014/10/26 职场文书
2015秋季开学典礼主持词
2015/07/16 职场文书
golang 实现菜单树的生成方式
2021/04/28 Golang