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 相关文章推荐
建立动态的WML站点(一)
Oct 09 PHP
浅析PHP水印技术
Feb 14 PHP
基于PHP异步执行的常用方式详解
Jun 03 PHP
php中PDO方式实现数据库的增删改查
May 17 PHP
php使用Imagick生成图片的方法
Jul 31 PHP
PHP中Closure类的使用方法及详解
Oct 09 PHP
WordPress网站性能优化指南
Nov 18 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
Jun 20 PHP
基于php实现的验证码小程序
Dec 13 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
Feb 20 PHP
PHP生成二维码与识别二维码的方法详解【附源码下载】
Mar 07 PHP
php-fpm重启导致的程序执行中断问题详解
Apr 29 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录入页面中动态从数据库中提取数据的实现
2006/10/09 PHP
php将数据库中的电话号码读取出来并生成图片
2008/08/31 PHP
解析php 版获取重定向后的地址(代码)
2013/06/26 PHP
PHP检测移动设备类mobile detection使用实例
2014/04/14 PHP
PHP和MySql中32位和64位的整形范围是多少
2016/02/18 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
2019/11/09 PHP
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
2009/12/09 Javascript
javascript 实现简单的table排序及table操作练习
2012/12/28 Javascript
jquery 跳到顶部和底部动画2句代码简单实现
2013/07/18 Javascript
javascript自定义的addClass()方法
2014/05/28 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
jQuery中通过ajax的get()函数读取页面的方法
2016/02/29 Javascript
原生Javascript插件开发实践
2017/01/09 Javascript
Bootstrap输入框组件使用详解
2017/06/09 Javascript
vue弹窗组件使用方法
2018/04/28 Javascript
微信小程序使用form表单获取输入框数据的实例代码
2018/05/17 Javascript
node.js express框架实现文件上传与下载功能实例详解
2019/10/15 Javascript
Vue中keep-alive组件作用详解
2020/02/04 Javascript
原生js+canvas实现贪吃蛇效果
2020/08/02 Javascript
详解Howler.js Web音频播放终极解决方案
2020/08/23 Javascript
简单谈谈Python中函数的可变参数
2016/09/02 Python
Python3结合Dlib实现人脸识别和剪切
2018/01/24 Python
Python处理命令行参数模块optpars用法实例分析
2018/05/31 Python
对Python中Iterator和Iterable的区别详解
2018/10/18 Python
Python利用神经网络解决非线性回归问题实例详解
2019/07/19 Python
Python 分发包中添加额外文件的方法
2019/08/16 Python
如何使用Python发送HTML格式的邮件
2020/02/11 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
2020/10/18 Python
Canvas引入跨域的图片导致toDataURL()报错的问题的解决
2018/09/19 HTML / CSS
小学教师学期末自我评价
2013/09/25 职场文书
2014法院干警廉洁警示教育思想汇报
2014/09/13 职场文书
公司委托书格式范本
2014/09/16 职场文书
民事诉讼代理委托书
2014/10/08 职场文书
实习报告范文
2019/07/30 职场文书
Nginx如何配置Http、Https、WS、WSS的方法步骤
2021/05/11 Servers
Golang jwt身份认证
2022/04/20 Golang