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 相关文章推荐
输出控制类
Oct 09 PHP
PHP脚本的10个技巧(3)
Oct 09 PHP
dedecms采集中可以过滤多行代码的正则表达式
Mar 17 PHP
PHP函数microtime()用法与说明
Dec 04 PHP
php自定义的格式化时间示例代码
Dec 05 PHP
php实现mysql封装类示例
May 07 PHP
ThinkPHP进程计数类Process用法实例详解
Sep 25 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
Dec 14 PHP
PHP环境搭建(php+Apache+mysql)
Nov 14 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
Jan 10 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
Jan 16 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
Mar 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 连接mysql连接被重置的解决方法
2011/02/15 PHP
PHP实现简易用户登录系统
2020/07/10 PHP
JavaScript高级程序设计(第3版)学习笔记7 js函数(上)
2012/10/11 Javascript
Jquery遍历checkbox获取选中项value值的方法
2014/02/13 Javascript
jquery库文件略庞大用纯js替换jquery的方法
2014/08/12 Javascript
手机端转盘抽奖代码分享
2015/09/10 Javascript
基于javascript html5实现3D翻书特效
2016/03/14 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
2016/10/08 Javascript
js监听键盘事件的方法_原生和jquery的区别详解
2016/10/10 Javascript
JavaScript仿微博发布信息案例
2016/11/16 Javascript
js鼠标跟随运动效果
2017/03/11 Javascript
react native实现往服务器上传网络图片的实例
2017/08/07 Javascript
JavaScript调试之console.log调试的一个小技巧分享
2017/08/07 Javascript
jQuery创建及操作xml格式数据示例
2018/05/26 jQuery
vue 基于element-ui 分页组件封装的实例代码
2018/12/10 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
layui表格内容溢出的解决方法
2019/09/06 Javascript
layer提示框添加多个按钮选择的实例
2019/09/12 Javascript
vue多个元素的样式选择器问题
2019/11/29 Javascript
详解vue或uni-app的跨域问题解决方案
2020/02/21 Javascript
JS定时器如何实现提交成功提示功能
2020/06/12 Javascript
python使用marshal模块序列化实例
2014/09/25 Python
python实现ID3决策树算法
2018/08/29 Python
Python3按一定数据位数格式处理bin文件的方法
2019/01/24 Python
Ubuntu18.04下python版本完美切换的解决方法
2019/06/14 Python
获取django框架orm query执行的sql语句实现方法分析
2019/06/20 Python
Python:合并两个numpy矩阵的实现
2019/12/02 Python
详解Python直接赋值,深拷贝和浅拷贝
2020/07/09 Python
vscode配置anaconda3的方法步骤
2020/08/08 Python
HTML+CSS+JavaScript实现图片3D展览的示例代码
2020/10/12 HTML / CSS
草莓巧克力:Shari’s Berries
2017/02/07 全球购物
Python中pass语句的作用是什么
2016/06/01 面试题
货代行业个人求职简历的自我评价
2013/10/22 职场文书
市场开发与营销专业求职信范文
2014/05/01 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
Redis Cluster 集群搭建你会吗
2021/08/04 Redis