Heim  >  Artikel  >  Backend-Entwicklung  >  php中实现多线程_PHP教程

php中实现多线程_PHP教程

WBOY
WBOYOriginal
2016-07-13 17:32:40790Durchsuche

php(做为现在的主流开发语言)中实现多线程? 看到这个标题, 你一定以为我疯了..但是事实上我真的这么做了.

下面是我的一些做法, 已经实验过. 确实可以的.

我们知道php(做为现在的主流开发语言)本身是不支持多线程的, 但是我们的WEB服务器是支持多线程的.

也就是说可以同时让多人一起访问. 这也是我在php(做为现在的主流开发语言)中实现多线程的基础.

假设我们现在运行的是a.php(做为现在的主流开发语言)这个文件. 但是我在程序中又请求WEB服务器运行另一个b.php(做为现在的主流开发语言)

那么这两个文件将是同时执行的.

(PS: 一个链接请求发送之后, WEB服务器就会执行它, 而不管客户端是否已经退出)

有些时候, 我们想运行的不是另一个文件, 而是本文件中的一部分代码.该怎么办呢?

其实可是通过参数来控制a.php(做为现在的主流开发语言)来运行哪一段程序.

下面看一个例子:

//a.php(做为现在的主流开发语言)


php(做为现在的主流开发语言)代码:--------------------------------------------------------------------------------

(做为现在的主流开发语言)
    function runThread()
    {
        $fp = fsockopen(localhost, 80, $errno, $errmsg);
       
        fputs($fp, "GET /a.php(做为现在的主流开发语言)?act=b ");        //这里的第二个参数是HTTP协议中规定的请求头
                                //不明白的请看RFC中的定义
       
        fclose($fp);
    }

    function a()
    {
        $fp = fopen(result_a.log, w);
        fputs($fp, Set in . Date(h:i:s, time()) . (double)microtime() . " ");
       
        fclose($fp);       
    }

    function b()
    {
        $fp = fopen(result_b.log, w);
        fputs($fp, Set in . Date(h:i:s, time()) . (double)microtime() . " ");

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/508699.htmlTechArticlephp (做为现在的主流开发语言) 中实现多线程? 看到这个标题, 你一定以为我疯了..但是事实上我真的这么做了. 下面是我的一些做法, 已经实...
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