PHP异步执行方法,模拟多线程

2023-08-16    分类: 网站建设

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异步调试和线上调试网站程序的方法
  • &#106avascript 异步加载,提高网页的浏览速度</li><li>PHP Curl批量多线程打开网址的类</li><li>PHP判断服务器SSL是否启用,也就是判断是否支撑HTTPS连接</li><li>PHP 行使 Curl Functions 实现多线程抓取网页和下载文件</li><li>php获取目录所有文件并将效果保存到数组的程序</li><li>php行使curl实现多线程的类,php curl多线程下载图片</li><li>PHP行使CURL_MULTI实现多线程</li></ul> <p> 网页题目:<a href="/news40/276140.html">PHP异步执行方法,模拟多线程</a> <br> 分享链接:<a href="/news40/276140.html">/news40/276140.html</a> </p> <p> <a href="/" target="_blank">成都网站建设公司</a>_<a href="https://www.cdcxhl.cn/" target="_blank">创新互联</a>,为您提供<a href="/news/dianzishangwu/">电子商务</a>、<a href="/news/xiangyingshi/">响应式网站</a>、<a href="/news/paiming/">网站排名</a>、<a href="/news/cloud/">云服务器</a>、<a href="/news/gaiban/">网站改版</a>、<a href="/news/qiyewangzhan/">企业网站制作</a> </p> <p class="adpic"> <a href="/service/ad.html" target="_blank" class="ad">广告</a> <a href="" target="_blank" class="adimg"><img src=""></a> </p> <p class="copy"> 声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: <a href="/" target="_blank">创新互联</a> </p> </div> <div class="newsmorelb"> <p>猜你还喜欢下面的内容</p> <ul> <li> <a href="/news38/276138.html">网站设计理论</a> <span>2023-08-16</span> </li><li> <a href="/news36/276136.html">延庆手机网站建设和开发要注意的事项</a> <span>2023-08-16</span> </li><li> <a href="/news34/276134.html">定制网站:建站之前需要准备什么</a> <span>2023-08-16</span> </li><li> <a href="/news32/276132.html">营销型网站:网站对企业有哪些帮助</a> <span>2023-08-16</span> </li><li> <a href="/news30/276130.html">网站建设中如何体现用户的粘度</a> <span>2023-08-16</span> </li><li> <a href="/news28/276128.html">网站建设:你知道建站的流程吗</a> <span>2023-08-16</span> </li><li> <a href="/news26/276126.html">网站定制:如何建站才能盈利</a> <span>2023-08-16</span> </li> </ul> </div> </div> <div class="col-lg-3 noneb"> <a href="/xiaochengx.html" title="微信小程序开发" target="_blank"><img src="/upload/news/weixinxiaochengxu.png" alt="微信小程序开发" class="img-responsive"></a> <div class="bkright"> <p><a href="/news/jianshe/">网站建设知识</a></p> <ul> <li> <a class="text_overflow" href="/news39/276139.html">厦门网站建设:怎样做seo优化,远离降权危险?</a> <span>2023-08-16</span> </li><li> <a class="text_overflow" href="/news37/276137.html">吴忠网站建设|专业做网站设计制作优化推广</a> <span>2023-08-16</span> </li><li> <a class="text_overflow" href="/news35/276135.html">北京百度推广浅谈搜索引擎优化与营销的关系</a> <span>2023-08-16</span> </li><li> <a class="text_overflow" href="/news33/276133.html">写网站建设方案时需要注意的几个问题</a> <span>2023-08-16</span> </li><li> <a class="text_overflow" href="/news31/276131.html">如何选择到专业的广东网站制作公司</a> <span>2023-08-16</span> </li><li> <a class="text_overflow" href="/news29/276129.html">雄安网站建设要明确哪些原则呢?</a> <span>2023-08-16</span> </li><li> <a class="text_overflow" href="/news27/276127.html">北京网站设计不是随心所欲,而是要应“需”而定!</a> <span>2023-08-16</span> </li> <li> <a class="text_overflow" href="/news25/276125.html">一个好的排名需要有站内结构支撑</a> <span>2023-08-16</span> </li><li> <a class="text_overflow" href="/news24/276124.html">一个成功的seo高手要有着seo方面的综合素质</a> <span>2023-08-16</span> </li><li> <a class="text_overflow" href="/news23/276123.html">seo优化:企业怎么样做好网络营销</a> <span>2023-08-16</span> </li><li> <a class="text_overflow" href="/news22/276122.html">网站导航栏目该如何设置与优化</a> <span>2023-08-16</span> </li><li> <a class="text_overflow" href="/news21/276121.html">江津网站优化域名和空间的选择及影响</a> <span>2023-08-16</span> </li> </ul> </div> <div class="bkright tag"> <p><a href="/hangye/" target="_blank">分类信息网</a></p> <ul> <li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="/hangye/pvc/" target="_blank">PVC花箱</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="/hangye/gangting/" target="_blank">岗亭</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="/hangye/hntjbz/" target="_blank">混凝土搅拌站</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="/hangye/blgzd/" target="_blank">玻璃钢坐凳</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="/hangye/hwxxy/" target="_blank">户外休闲椅</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="/hangye/iso/" target="_blank">iso认证</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="/hangye/led/" target="_blank">LED显示屏</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="/hangye/zkj/" target="_blank">公路钻孔机</a> </li> </ul> </div> </div> </div> <footer> <div class="carousel-inner footjz"> <div class="container"> <i class="icon iconfont zbw"></i> 高品质定制 <i class="icon iconfont"></i> 跨终端自动兼容 <i class="icon iconfont"></i> 节约开发成本 <i class="icon iconfont"></i> 开发周期短 <i class="icon iconfont"></i> 一体化服务 <button type="button" class="btn btn-default btn-lg" onClick="window.location.href='tencent://message/?uin=631063699&Site=&Menu=yes'"> 立即开始2800定制网站建设</button> <button type="button" class="btn btn-default btn-xs" onClick="window.location.href='tencent://message/?uin=631063699&Site=&Menu=yes'"> 2800定制网站建设</button> </div> </div> <div class="carousel-inner bqsy"> <div class="container"> <div class="lxfs"> <h4 class="yutelnone">028-86922220 13518219792</h4> <h4 class="yutelblock"><a href="tel:02886922220">028-86922220</a> <a href="tel:13518219792">13518219792</a></h4> <a class="btn btn-default" href="tencent://message/?uin=532337155&Site=&Menu=yes" role="button">网站建设<span>QQ</span>:532337155</a> <a class="btn btn-default" href="tencent://message/?uin=631063699&Site=&Menu=yes" role="button">营销推广<span>QQ</span>:631063699</a> <a class="btn btn1 btn-default" href="mqqwpa://im/chat?chat_type=wpa&uin=532337155&version=1&src_type=web&web_src=oicqzone.com" role="button">网站制作<span>QQ</span>:532337155</a> <a class="btn btn1 btn-default" href="mqqwpa://im/chat?chat_type=wpa&uin=631063699&version=1&src_type=web&web_src=oicqzone.com" role="button">营销推广<span>QQ</span>:631063699</a> <a class="btn btn-default nonea" href="tencent://message/?uin=1683211881&Site=&Menu=yes" role="button">售后QQ:1683211881</a> <div class="dz">专注: <a href="http://www.cdhuace.com/" target="_blank">广告设计</a><a href="https://www.xwcx.net/" target="_blank">服务器托管</a><a href="http://www.kswcd.com/" target="_blank">定制网站建设</a><a href="http://www.cxhljz.cn/" target="_blank">成都网站设计</a><a href="http://www.kswsj.com/" target="_blank">成都制作网站</a> <address>地址:成都太升南路288号锦天国际A幢10楼</address> </div> </div> <div class="bzdh dz"><img src="../imges/bottom_logo.png" alt="创新互联"> <p><a href="/menu.html" target="_blank">成都创新互联科技有限公司</a><br> Tel:400-028-6601(7x24h)</p></div> </div> </div> </footer> <div class='link'> <a href='http://www.verzuimpartners.com'>2024欧洲杯竞猜官网</a> | <a href='http://www.its-our-pleasure.com'>BET体育官方网站(中国)有限公司</a> | <a href='http://www.vspflooring.com'>星空体育·(StarSky Sports)</a> | <a href='http://www.zeusalarm.com'>bet官方(中国)有限公司</a> | <a href='http://www.dragongardentogo.com'>在线体育竞猜(中国)有限公司</a> | <a href='http://www.terranuragica.com'>BET体育|中国有限公司</a> | <a href='http://www.haygg.com'>bat365在线平台·(中国)官方网站</a> | <a href='http://www.jebsenwineestates.com'>半岛·体育(中国)官方网站</a> | </div> </body> </html>