99re热视频精品首页-99re热视频在线-99re热视频这里只有精品5-99re热线精品视频-99re热在线观看-99re热在线视频

蒙狼科技logo
設為首頁| 聯系我們
咨詢熱線: 13917498722
  您的位置: 首頁 > 網站資訊 > PHP 異步執行方法,模擬多線程

PHP 異步執行方法,模擬多線程

發布日期:2017/7/10

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 中異步的做些事情了。

比如,一個很切實的應用,我們每當發表了一篇新日志后需要給所有該日志的訂閱者發個郵件通知, 假如按照通常的體例就是:

日志寫完 -> 點提交按鈕 -> 日志插入到數據庫 -> 發送郵件通知 -> 告知撰寫者發布成功

那么作者在點提交按鈕到看到成功提醒之間可能會等待很常時間,基本是在等郵件發送的過程,比如連接郵件服務異常、或器緩慢或是訂閱者太多。而現實上是不管郵件發送成功與否,保證日志保存成功基本可接受的,所以等待郵件發送的過程是很不經濟的,這個過程可異步來執行,并且郵件發送的效果不太關心或以日志形式記錄備查。

改進后的流程就是:

日志寫完 -> 點提交按鈕 -> 日志插入到數據庫 ---> 告知撰寫者發布成功 ---> 發送郵件通知 -> [記下日志]

寫個現實的程序來測試一下上海做網站中心app應用,有兩個文件,分別是 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異步調試和線上調試網站程序的方法
  • javascript 異步加載,提高網頁的瀏覽速度
  • PHP Curl批量多線程打開網址的類
  • PHP判斷服務器SSL是否啟用,也就是判斷是否支撐HTTPS連接
  • PHP 行使 Curl Functions 實現多線程抓取網頁和下載文件
  • php獲取目錄所有文件并將效果保存到數組的程序
  • php行使curl實現多線程的類,php curl多線程下載圖片
  • PHP行使CURL_MULTI實現多線程




其他相關文章
  • 2012年十二月web設計與開發熱點
  • 捂緊微信錢包,微信盜號木馬來了,有人已被盜刷上萬元
  • 什么緣故原由造成了網站排名的高低
  • 2016年如何做好企業網站優化
  • css3 2d之translate屬性
  • 追求突破轉型或是網站建設公司




  • 企業網站后臺使用
    購物網站后臺使用
    網站產品圖片的處理



    農業銀行支付
    建設銀行支付
    郵政儲蓄銀行支付



    企業網站建設
    整站建設
    購物網站



    企業網站建設建議
    注冊適合自己的域名
    什么是虛擬主機




    售前咨詢QQ: 838821345
    售后服務QQ: 464698733
    應急手機:13917498722


    微信掃一掃
    添加24小時微信客服


    郵箱:lang@MENGL.CN
    地址:上海寶山區城銀路555弄2號樓3樓
    ICP備案:滬ICP備12042844號-3
     滬公網安備:31011402002917號
    做網站 | 企業網站建設 | 上海做網站 | 企業網站制作 | 做網站的公司 | 關于蒙狼 | 整站建設 | 購物網站 | 企業網絡營銷 | 成功案例 | 加盟代理 | 在線訂單
    服務區域: 臨港新區做網站 徐匯做網站 閔行做網站 長寧做網站 虹口做網站 黃浦做網站 盧灣做網站 靜安做網站 浦東做網站 楊浦做網站 普陀做網站 閘北做網站 寶山做網站 嘉定做網站 松江做網站 昆山做網站
    Copyright 2012-2025 上海蒙狼網絡科技有限公司 www.zcrhy.com.cn All Rights Reserved