PHP安装threads多线程扩展基础教程

一、下载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+ajax实现无刷新分页 - 2015-11-19 19:11:04

本文实例讲述了php+ajax实现无刷新分页实现方法。分享给大家供大家参考。具体如下: limit 偏移量,长度; limit 0,7; 第一页 limit 7,7; 第二页 limit 14,7; 第三页 每页信息条数:7 信息总条数:select count(*) from table 信息总页数:ceil向上取整(总条数/每页条数) 1、分页类具体使用 ?phpclass Pagination { private $total; //数据表中总记录数 private $listRows; //每页显
刷票行为,一直以来都是个难题,无法从根本上防止。 但是我们可以尽量减少刷票的伤害,比如:通过人为增加的逻辑限制。 基于 PHP,下面介绍防刷票的一些技巧: 1、使用CURL进行信息伪造 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, " http://localhost/2.php "); curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:8.8.8.8', 'CLIENT-IP:8.8
从PHP生成HTML静态页面并存储到以年份和月份为名称创建的目录。 读取全部数据批量生成,全部生成后弹出提示。 可指定批次生成数量,建议不超过800,否则执行速度会有问题。 (出于众所周知的原因,涉及到数据库的数据字段名称做了改动,并且为了代码明晰去掉了参数过滤的部分) 说明:原动态地址为 moban.php?id=1 ,生成后地址为 html/200808/sell_1.html 。page.php为分页程序,本博客中有发布。 页面使用方式,将本代码保存为make.php,使用方法为浏览器访问 make
废话不多说了,直接给大家贴代码了。 ?php class test{} $a1 = null; $a2 = ""; //$a3 = $a4 = 0; $a5 = '0'; $a6 = false; $a7 = array(); //var $a8; $a9 = new test(); for ($i=1; $i =9 ; $i++) { $s = 'a'.$i; echo $i . ":"; var_dump(isset($$s)); echo 'br /'; } echo 'br /'; for ($i

WordPress网站性能优化指南 - 2015-11-19 18:11:15

1.选择一个好的主机 尽量不要使用免费主机或者共享主机(Godaddy啊、Bluehost啊等等所谓无限带宽、无限网站之类的主机) 首先,你的域名和你的主机最好在一个IDC哪儿,如果不是的话,建议你采用口碑良好的DNS服务商,让域名以最快的速度解析到主机上,这不是重点,重点是你的服务器/主机空间应该够快,怎么才能够快呢?CPU的配置、CPU的使用率、物理内存的大小、磁盘类型以及磁盘的I/O性能(包括Mysql数据库服务器所用磁盘)、Mysql响应速度以及Mysql并发数等等,都会影响到网站的快与不快,并且
yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2使用中的一些基本的增删改查操作。 User::find()-all(); //返回所有用户数据; User::findOne($id); //返回 主键 id=1 的一条数据; User::find()-where(['name' = 'ttt'])-one(); //返回 ['name' = 'ttt'] 的一条数据; User::find()-where(['name' = 'ttt'])-al
本文分享了php结合ajax实现无刷新上传图片的实例代码,分享给大家,希望大家可以和小编一起学习学习,共同进步。 1.引入文件 !--图片上传begin--script type="text/javascript" src="/js/jquery.form.js"/scriptscript type="text/javascript" src="/js/uploadImg.js"/scriptlink href=#> 2.html部分 div class="upimg" input name="icon"

教大家制作简单的php日历 - 2015-11-19 15:11:54

最近的一个项目中,需要将数据用日历方式显示,网上有很多的JS插件,后面为了自己能有更大的控制权,决定自己制作一个日历显示。如下图所示: 一、计算数据 1、new一个Calendar类 2、初始化两个下拉框中的数据,年份与月份 3、初始化要搜索的年份和月份 4、计算得出日历中每一天的数据信息,包括css、天数 ?php require_once 'calendar.php'; $util = new Calendar(); $years = array(2012, 2013, 2014, 2015, 201
Yii是一个基于组件的高性能PHP框架,用于开发大型Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。 废话不多说了,直接给大家贴代码了。 ?phpclass ContactForm extends CFormModel{ public $_id; public $contact;//联系人 public $tel;//电话 public $fax;//传真 public $zipcode;//邮编 public $addr;//地址 public $mobile;//手机 pub

使用PHP uniqid函数生成唯一ID - 2015-11-19 14:11:40

生成唯一ID的应用场景非常普遍,如临时缓存文件名称,临时变量,临时安全码等,uniqid()函数基于以微秒计的当前时间,生成一个唯一的 ID。由于生成唯一ID与微秒时间关联,因此ID的唯一性非常可靠。 生成的唯一ID默认返回的字符串有 13 个字符串长,如果不定义唯一ID的前缀,最多可返回23个字符串长,如果再结合md5()函数,生成的唯一ID可靠性将更高,这种生成的ID比随机性的ID 最大优点在于可实现排序,特别是一些需要存储在数据库中的值。 一,函数原型 string uniqid ( [string