Heim >php教程 >php手册 >php安装threads多线程扩展,phpthreads多线程

php安装threads多线程扩展,phpthreads多线程

WBOY
WBOYOriginal
2016-06-13 08:50:541269Durchsuche

php安装threads多线程扩展,phpthreads多线程

php5.3或以上,且为线程安全版本。apache和php使用的编译器必须一致。
通过phpinfo()查看Thread Safety为enabled则为线程安全版。
通过phpinfo()查看Compiler项可以知道使用的编译器。本人的为:MSVC9 (Visual C++ 2008)。

 

一、下载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<br />class Thread<br />{<br /><br />    var $hooks = array();<br />    var $args = array();<br /><br />    function thread()<br />    {<br /><br />    }<br /><br />    function addthread($func)<br />    {<br />        $args = array_slice(func_get_args(), 1);<br />        $this->hooks[] = $func;<br />        $this->args[] = $args;<br />        return true;<br />    }<br /><br />    function runthread()<br />    {<br />        if(isset($_GET['flag']))<br />        {<br />            $flag = intval($_GET['flag']);<br />        }<br />        if($flag || $flag === 0)<br />        {<br />            call_user_func_array($this->hooks[$flag], $this->args[$flag]);<br />        }<br />        else<br />        {<br />            for($i = 0, $size = count($this->hooks); $i < $size; $i++)<br />            {<br />                $fp=fsockopen($_SERVER['HTTP_HOST'],$_SERVER['SERVER_PORT']);<br />                if($fp)<br />                {<br />                    $out = "GET {$_SERVER['PHP_SELF']}?flag=$i HTTP/1.1rn";<br />                    $out .= "Host: {$_SERVER['HTTP_HOST']}rn";<br />                    $out .= "Connection: Closernrn";<br />                    fputs($fp,$out);<br />                    fclose($fp);<br />                }<br />            }<br />        }<br />    }<br />}<br /><br /><br />

四、测试pthreads扩展

include('thread.php');<br />class AsyncOperation extends Thread {<br />    public function __construct($arg){<br />        $this->arg = $arg;<br />    }<br /><br />    public function run(){<br />        if($this->arg){<br />            printf("Hello %s\n", $this->arg);<br />        }<br />    }<br />}<br />$thread = new AsyncOperation("World");<br />if($thread->start())<br />    $thread->join();<br /><br /><br />
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn