一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

PHP 異步執行方法,模擬多線程的應用分析

php 本身沒有多線程的東西,但可以曲線的辦法來造就出同樣的效果,比如多進程的方式來達到異步調用,只限于命令模式。
另外還有一種更簡單的方式可用于 Web 程序中,那就是用 fsockopen()、fputs() 來請求一個 URL, 而無需等待返回,如果你在那個被請求的頁面(URL)中做些事情就相當于異步了。
關鍵代碼如下:
復制代碼 代碼如下:
<?php
  $fp = fsockopen('localhost',80,&$errno,&$errstr,5); 
  if(!$fp)
     {
         echo "$errstr ($errno)<br />/n";
     }
     fputs($fp,"GET another_page.php?flag=1/r/n");
     fclose($fp);

上面的代碼向頁面 another_page.php 發送完請求就不管了,用不著等待請求頁面的響應數據,利用這一點就可以在被請求的頁面 another_page.php 中異步的做些事情了。
比如,一個很切實的應用,我們每當發表了一篇新日志后需要給所有該日志的訂閱者發個郵件通知, 如果按照通常的方式就是:
日志寫完 -> 點提交按鈕 -> 日志插入到數據庫 -> 發送郵件通知 -> 告知撰寫者發布成功
那么作者在點提交按鈕到看到成功提示之間可能會等待很常時間,基本是在等郵件發送的過程,比如連接郵件服務異常、或器緩慢或是訂閱者太多。而實際上是不管郵件發送成功與否,保證日志保存成功基本可接受的,所以等待郵件發送的過程是很不經濟的,這個過程可異步來執行,并且郵件發送的結果不太關心或以日志形式記錄備查。
改進后的流程就是:
日志寫完 -> 點提交按鈕 -> 日志插入到數據庫 ---> 告知撰寫者發布成功
                                                           └ 發送郵件通知 -> [記下日志]
寫個實際的程序來測試一下,有兩個文件,分別是 write.php 和 sendmail.php,在 sendmail.php 用 sleep(seconds) 來模擬程序執行所使用時間。
write.php,執行耗時 1 秒:
復制代碼 代碼如下:
 <?php 
  function asyn_sendmail()
     {
         $fp = fsockopen('localhost',80,&$errno,&$errstr,5); 
      if(!$fp)
         {
            echo "$errstr ($errno)<br />/n";
         }
     sleep(1);
     fputs($fp,"GET /sendmail.php?param=1/r/n"); #請求的資源 URL 一定要寫對
     fclose($fp);
    } 
 echo time().'<br>';
 echo 'call asyn_sendmail<br>';
 asyn_sendmail();
 echo time().'<br>';

sendmail.php,執行耗時 10 秒:
復制代碼 代碼如下:
<?php
sleep(10);
fopen("C:/" . time(),  "w"); 

通過頁面訪問 write.php,頁面輸出:
1272472697
call asyn_sendmail
1272472698
并且在 C:/ 生成文件:
1272472708
從上面的結果可以看出 sendmail.php 至少花費 10 秒,但不會阻塞 write.php 繼續往下執行,表明這一過程是異步的。

php技術PHP 異步執行方法,模擬多線程的應用分析,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 日韩在线观看中文字幕 | 欧洲在线视频 | 国产猛男猛女超爽免费视频 | 激情五月社区 | 亚洲激情中文字幕 | 韩国美女爽快一级毛片黄 | 91精品全国免费观看含羞草 | 久久精品国产91久久综合麻豆自制 | 永久黄网站色视频免费观看 | 男人操女人免费视频 | 精品视频在线观看一区二区三区 | 91免费精品国偷自产在线在线 | 国产亚洲精品在天天在线麻豆 | 午夜视频一区二区三区 | 亚洲综合偷自成人网第页色 | 91麻豆精品在线观看 | 日韩精品一区二区三区中文 | 色婷婷影院在线视频免费播放 | 第一页亚洲 | 91青青国产在线观看免费 | 亚洲香蕉网久久综合影院3p | 最新国产毛片 | 一区二区视频在线免费观看 | 天天拍拍天天爽免费视频 | 国产精视频 | 一区二区三区伦理高清 | 国色天香网 | 成人在线视频免费观看 | 91精品国产91久久久久久最新 | 四虎影视4hutv最新地址在线 | 最新精品视频在线观看 | 中日韩美中文字幕 | 在线小毛片 | 91精品国产福利在线观看性色 | 2021在线永久免费视频 | 白嫩少妇激情无码 | 亚洲黄色在线网站 | 九九九在线视频 | 欧美成人天天综合天天在线 | 国产精品福利在线观看免费不卡 | 亚洲欧美在线精品一区二区 |