zoukankan      html  css  js  c++  java
  • 真正的PHP多线程(绝非fork或者用http再开进程)

    转载:http://blog.csdn.net/leinchu/article/details/8012640

    我写了一个扩展打算放到pecl,但是,进过交流发现有人已经做了两个php的多线程扩展

    1、https://github.com/alecgorge/php_threading/

    2、https://github.com/krakjoe/pthreads

    刚才成功的编译后了第二个(一个似乎不是官方的标准扩展写法、估计有点儿麻烦,而且第一个是2年前的东西了),迫不及待的写下这篇文章,介绍怎么安装:

    #如果你的autoconfig版本高于2.59,则只能安装php5.4
    #否则你只可以安装5.3.17。如果知道你的autoconf的版本——如果你已经安装了php.5.4那么,你就安装照5.4的安装;如果装了5.3就装5.3
    
    #5.4
    wget http://www.php.net/get/php-5.4.7.tar.gz/from/cn.php.net/mirror
    tar zxvf php-5.4.7.tar.gz
    cd php-5.4.7/ext
    
    #5.3
    wget http://www.php.net/get/php-5.3.17.tar.gz/from/cn.php.net/mirror
    tar -xf php-5.3.17.tar.gz
    cd php-5.3.17/ext
    
    
    #下面装pthreads
    wget https://github.com/krakjoe/pthreads/tarball/master -O pthreads.tar.gz
    tar -xf pthreads.tar.gz
    mv krakjoe-pthreads* pthreads
    cd ../
    ./buildconf --force
    ./configure --enable-maintainer-zts --enable-pthreads --prefix=/usr/local/php-threads#其它参数自行配置,这里只是必须的参数
    make
    make install

    源码包里面有例子,像这样执行:

    /usr/local/php-threads/bin/php AdvancedSynchronization.php

    Process: running
    ScopeTest: 140703850592000 running
    ScopeTest2: 140703839512320 running
    ScopeTest2: 140703839512320 working ...
    ScopeTest2: 140703839512320 notified: 1
    Process: notifying 140703839512320: 1
    ScopeTest: 140703850592000 notified: 1
    Process: notifying 140703850592000: 1

    通过apache执行的还没有试过,因为我不想破坏现有的php环境,而且我也不打算在非cli模式下执行。

  • 相关阅读:
    人月神话阅读笔记
    12周总结
    IOS成长之路-用NSXMLParser实现XML解析
    沟通能力的表达
    IOS中UIScrollView的contentSize、contentOffset和contentInset属性
    Block 的使用时机
    drawAdapter
    drawpoly()函数的用法
    @synchronized(self)
    Swift2
  • 原文地址:https://www.cnblogs.com/zl0372/p/pthreads.html
Copyright © 2011-2022 走看看