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实现的仿阿里巴巴实现同类产品翻页
Dec 11 PHP
php将gd生成的图片缓存到memcache的小例子
Jun 05 PHP
php实现图片添加水印功能
Feb 13 PHP
PHP中auto_prepend_file与auto_append_file用法实例分析
Sep 22 PHP
WordPress自定义时间显示格式
Mar 27 PHP
Discuz!X中SESSION机制实例详解
Sep 23 PHP
PHP中的session安全吗?
Jan 22 PHP
Thinkphp和onethink实现微信支付插件
Apr 13 PHP
ThinkPHP简单使用memcache缓存的方法
Nov 15 PHP
PHP验证码无法显示的原因及解决办法
Aug 11 PHP
PHP实现正则表达式分组捕获操作示例
Feb 03 PHP
PHP whois查询类定义与用法示例
Apr 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
重料打造自己的“宝马”---第三代
2021/03/02 无线电
cmd下运行php脚本
2008/11/25 PHP
PHP中call_user_func_array()函数的用法演示
2012/02/05 PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
2014/06/12 PHP
php继承中方法重载(覆盖)的应用场合
2015/02/09 PHP
ZendFramework框架实现连接两个或多个数据库的方法
2016/12/08 PHP
PHP实现的堆排序算法详解
2017/08/17 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
2019/10/14 PHP
jqgrid 简单学习笔记
2011/05/03 Javascript
JavaScript NaN和Infinity特殊值 [译]
2012/09/20 Javascript
javascript:history.go()和History.back()的区别及应用
2012/11/25 Javascript
Jquery时间轴特效(三种不同类型)
2015/11/02 Javascript
jQuery给元素添加样式的方法详解
2015/12/30 Javascript
分析JavaScript数组操作难点
2017/12/18 Javascript
vue.js中toast用法及使用toast弹框的实例代码
2018/08/27 Javascript
浅谈React碰到v-if
2018/11/04 Javascript
JS模拟浏览器实现全局搜索功能
2019/09/11 Javascript
Python爬取网易云音乐热门评论
2017/03/31 Python
python处理csv数据动态显示曲线实例代码
2018/01/23 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
2020/06/28 Python
浅谈keras中Dropout在预测过程中是否仍要起作用
2020/07/09 Python
Html5 滚动穿透的方法
2019/05/13 HTML / CSS
业务员薪酬管理制度
2014/01/15 职场文书
母亲七十大寿答谢词
2014/01/18 职场文书
法学毕业生自我鉴定
2014/01/31 职场文书
幼儿园教学随笔感言
2014/02/23 职场文书
广告语设计及教案
2014/03/21 职场文书
IT工程师岗位职责
2014/07/04 职场文书
银行党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
房屋租赁协议书(标准版)
2014/10/02 职场文书
股东出资证明书范例
2014/10/04 职场文书
行政后勤人员工作计划应该怎么写?
2019/08/16 职场文书
MySQL令人咋舌的隐式转换
2021/04/05 MySQL
几款流行的HTML5 UI框架比较(小结)
2021/04/08 HTML / CSS
python学习之panda数据分析核心支持库
2021/05/07 Python
python实现手机推送 代码也就10行左右
2022/04/12 Python