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常用代码
Nov 23 PHP
php Undefined index和Undefined variable的解决方法
Mar 27 PHP
PHP 读取和修改大文件的某行内容的代码
Oct 30 PHP
phpmail类发送邮件函数代码
Feb 20 PHP
ThinkPHP关联模型操作实例分析
Sep 23 PHP
PHP实现今天是星期几的几种写法
Sep 26 PHP
PHP实现将视频转成MP4并获取视频预览图的方法
Mar 12 PHP
PHP单例模式详细介绍
Jul 01 PHP
PHP开发中csrf攻击的简单演示和防范
May 07 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
Nov 16 PHP
PHP date()格式MySQL中插入datetime方法
Jan 29 PHP
Thinkphp 框架扩展之Widget扩展实现方法分析
Apr 23 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 GD绘制24小时柱状图
2008/06/28 PHP
phpmyadmin 常用选项设置详解版
2010/03/07 PHP
PHP实现的简单mock json脚本分享
2015/02/10 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
2016/05/28 PHP
laravel5创建service provider和facade的方法详解
2016/07/26 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
js 禁用只读文本框获得焦点时的退格键
2010/04/25 Javascript
onsubmit阻止form表单提交与onclick的相关操作
2010/09/03 Javascript
JS中表单的使用小结
2014/01/11 Javascript
点击表单提交时出现jQuery没有权限的解决方法
2014/07/23 Javascript
jquery实现的鼠标下拉滚动置顶效果
2014/07/24 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
2016/08/06 Javascript
微信小程序 开发工具快捷键整理
2016/10/31 Javascript
jQuery DateTimePicker 日期和时间插件示例
2017/01/22 Javascript
ES6中Array.copyWithin()函数的用法实例详解
2017/09/16 Javascript
VUE实现移动端列表筛选功能
2019/08/23 Javascript
[00:31]DOTA2荣耀之路7:Miracle-空血无敌斩
2018/05/31 DOTA
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
python爬虫之xpath的基本使用详解
2018/04/18 Python
Python标准库shutil用法实例详解
2018/08/13 Python
使用TensorFlow实现SVM
2018/09/06 Python
对Python 检查文件名是否规范的实例详解
2019/06/10 Python
使用索引(Index)有哪些需要考虑的因素
2016/10/19 面试题
Internet主要有哪些网络群组成
2015/12/24 面试题
linux下进程间通信的方式
2014/12/23 面试题
入党积极分子思想汇报范文
2014/01/05 职场文书
电焊工岗位职责
2014/03/06 职场文书
入党自荐书范文
2014/03/09 职场文书
个人培训自我鉴定
2014/03/28 职场文书
2014年秋季开学典礼致辞
2014/08/02 职场文书
乡镇党建工作汇报材料
2014/08/14 职场文书
2014年英语教研组工作总结
2014/12/06 职场文书
MongoDB 常用的crud操作语句
2021/06/20 MongoDB
Kubernetes控制节点的部署
2022/04/01 Servers