程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php中實現多線程

php中實現多線程

編輯:關於PHP編程

php(做為現在的主流開發語言)中實現多線程? 看到這個標題, 你一定以為我瘋了..但是事實上我真的這麼做了.

下面是我的一些做法, 已經實驗過. 確實可以的.

我們知道php(做為現在的主流開發語言)本身是不支持多線程的, 但是我們的WEB服務器是支持多線程的.

也就是說可以同時讓多人一起訪問. 這也是我在php(做為現在的主流開發語言)中實現多線程的基礎.

假設我們現在運行的是a.php(做為現在的主流開發語言)這個文件. 但是我在程序中又請求WEB服務器運行另一個b.php(做為現在的主流開發語言)

那麼這兩個文件將是同時執行的.

(PS: 一個鏈接請求發送之後, WEB服務器就會執行它, 而不管客戶端是否已經退出)

有些時候, 我們想運行的不是另一個文件, 而是本文件中的一部分代碼.該怎麼辦呢?

其實可是通過參數來控制a.php(做為現在的主流開發語言)來運行哪一段程序.

下面看一個例子:

//a.php(做為現在的主流開發語言)


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() . " ");

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved