php多线程php同一个文件怎么使用 多线程处理

php多线程  时间:2021-01-08  阅读:()

php多线程

以下都是转载, 简单说下, php是不支持多线程的。







PHP语言本身是不支持多线程的. 总结了一下网上关于PHP模拟多线程的方法, 总的来说, 都是利用了PHP的好伙伴们本身所具有的多线程能力. PHP的好伙伴指的就是LINUX和APACHE啦, LAMP嘛. 另外, 既然是模拟的, 就不是真正的多线程. 其实只是多进程. 进程和线程是两个不同的概念. 好了, 以下方法都是从网上找来的. 1. 利用LINUX操作系统 <?php for ($i=0;$i<10;$i++) { echo $i; sleep(5); } ?> 上面存成test.php, 然后写一段SHELL代码 #!/bin/bash for i in 1 2 3 4 5 6 7 8 9 10 do php -q test.php & done 2. 利用fork子进程(其实同样是利用LINUX操作系统) <?php declare(ticks=1); $bWaitFlag = FALSE; /// 是否等待进程结束 $intNum = 10; /// 进程总数 $pids = array(); /// 进程PID数组 echo ("Startn"); for($i = 0; $i < $intNum; $i++) { $pids[$i] = tl_fork();/// 产生子进程,而且从当前行之下开试运行代码,而且不继承父进程的数据信息 if(!$pids[$i]) { // 子进程进程代码段_Start $str=""; sleep(5+$i); for ($j=0;$j<$i;$j++) {$str.="*";} echo "$i -> " . time() . " $str n"; exit(); // 子进程进程代码段_End } } if ($bWaitFlag) { for($i = 0; $i < $intNum; $i++) { tl_waitpid($pids[$i], $status, WUNTRACED); echo "wait $i -> " . time() . "n"; } } echo ("Endn"); ?> 3. 利用WEB SERVER, PHP不支持多线程, APACHE可是支持的, 呵呵. 假设我们现在运行的是a.php这个文档. 但是我在程式中又请求WEB服务器运行另一个b.php 那么这两个文档将是同时执行的. <?php function runThread() { $fp = fsockopen('localhost', 80, $errno, $errmsg); fputs($fp, "GET /a.php?act=brnrn"); fclose($fp); } function a() { $fp = fopen('result_a.log', 'w'); fputs($fp, 'Set in ' . Date('h:i:s', time()) . (double)microtime() . "rn"); fclose($fp); } function b() { $fp = fopen('result_b.log', 'w'); fputs($fp, 'Set in ' . Date('h:i:s', time()) . (double)microtime() . "rn"); fclose($fp); } if(!isset($_GET['act'])) $_GET['act'] = 'a'; if($_GET['act'] == 'a') { runThread(); a(); } else if($_GET['act'] == 'b') b(); ?> 当然啦,也可以把需要多线程处理的部分交给JAVA去处理, 然后在PHP里调用, 哈哈. <?php system('java multiThread.java'); ?>

一个php线程 占多少内存

单独的线程不占用多少内存,好像也没有工具查看,一个进程一般占用3-5M内存,这与加载的扩展有关,如果配置不好可能占用内存较大。

PHP线程安全与非线程安全的区别:如何选择用哪一个

首先,Linux下的PHP,没有线程安全版和非线程安全版之分。

从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,直至5.2.1版本开始有Thread Safe(TS,线程安全)和None Thread Safe(NTS,非线程安全)之分。

因为,Linux/Unix系统采用的是多进程的工作方式,而Windows系统采用多线程的工作方式。

即:Linux系统的任务调度基本单位是进程,Windows系统的任务调度基本单位是线程(本观点来自自学与总结,不能保证百分之百正确)。

所以,在Windows系统的IIS下以CGI方式运行PHP会非常慢,这是由于CGI模式是建立在多进程的基础之上的,而非多线程,且CGI模式对于每个HTTP请求都需要重新加载和卸载整个PHP环境,其消耗是巨大的。

于是,一般我们会把PHP配置成以ISAPI的方式来运行,ISAPI是多线程的方式,这样就快多了。

但存在一个问题,很多常用的PHP扩展是以 Linux/Unix的多进程思想来开发的,这些扩展在ISAPI的方式运行时就会出错搞垮IIS。

为了兼顾IIS下PHP的效率和安全,微软给出了FastCGI的解决方案。

FastCGI可以让PHP的进程重复利用,而不是每一个新的请求就重开一个进程。

同时FastCGI也可以允许几个进程同时执行。

这样既解决了CGI进程模式消耗太大的问题,又利用上了CGI进程模式不存在线程安全问题的优势。

因此,如果是使用ISAPI的方式来运行PHP就必须用Thread Safe(TS,线程安全)的版本;而用FastCGI模式运行PHP的话就没有必要用线程安全检查了,用None Thread Safe(NTS,非线程安全)的版本能够更好的提高效率。

名词解析:
  • IIS: Information Services (互联网信息服务),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务
  • CGI:Common Gateway Interface (通用网关接口),是外部应用程序(CGI程序)与Web服务器之间的接口标准
  • ISAPI: Server Application Programming Interface (互联网应用程序接口),是为Microsoft所提的 server的API
  • FastCGI:CGI存在收到每个请求时都开辟一个进程等不足,FastCGI可以理解为是征对CGI的改进版

    php同一个文件怎么使用 多线程处理

    首先php不支持多线程, 但是你可以用多进程的方式。

    其次可以通过文件锁的方式可以部分实现对同一文件进行互斥的访问
  • 虎跃云-物理机16H/32G/50M山东枣庄高防BGP服务器低至550元每月!

    虎跃科技怎么样?虎跃科技(虎跃云)是一家成立于2017年的国内专业服务商,专业主营云服务器和独立服务器(物理机)高防机房有着高端华为T级清洗能力,目前产品地区有:山东,江苏,浙江等多地区云服务器和独立服务器,今天虎跃云给大家带来了优惠活动,为了更好的促销,枣庄高防BGP服务器最高配置16核32G仅需550元/月,有需要的小伙伴可以来看看哦!产品可以支持24H无条件退款(活动产品退款请以活动规则为准...

    VoLLcloud6折限量,香港CMI云服务器三网直连-200M带宽

    vollcloud LLC首次推出6折促销,本次促销福利主要感恩与回馈广大用户对于我们的信任与支持,我们将继续稳步前行,为广大用户们提供更好的产品和服务,另外,本次促销码共限制使用30个,个人不限购,用完活动结束,同时所有vps产品支持3日内无条件退款和提供免费试用。需要了解更多产品可前往官网查看!vollcloud优惠码:VoLLcloud终生6折促销码:Y5C0V7R0YW商品名称CPU内存S...

    特网云57元,香港云主机 1核 1G 10M宽带1G(防御)

    特网云官網特网云服务器在硬件级别上实现云主机之间的完全隔离;采用高端服务器进行部署,同时采用集中的管理与监控,确保业务稳定可靠,搭建纯SSD架构的高性能企业级云服务器,同时采用Intel Haswell CPU、高频DDR4内存、高速Sas3 SSD闪存作为底层硬件配置,分钟级响应速度,特网云采用自带硬防节点,部分节点享免费20G防御,可实现300G防御峰值,有效防御DDoS、CC等恶意攻击,保障...

    php多线程为你推荐
    316不锈钢和304哪个好保温杯不锈钢316和304哪个好燃气热水器和电热水器哪个好电热水器和燃气热水器哪一个更安全,且更节省能源?电陶炉和电磁炉哪个好电磁炉和电陶炉买哪个?手机炒股软件哪个好手机炒股软件手机炒股软件哪个好免费手机炒股软件哪个好?海克斯皮肤哪个好lol100块抽11次的海克斯宝箱值得买吗网络机顶盒哪个好哪个品牌的网络机顶盒好用?美国国际东西方大学现在去哪国留学最有前途?群空间登录手机能否登录群空间,如何登录360云盘网页版360云盘网页版在哪里登录呀?
    网站服务器租用 青岛虚拟主机 inmotionhosting linode tier 好看的留言 新站长网 标准机柜尺寸 ibrs 免费个人网站申请 警告本网站美国保护 泉州电信 秒杀汇 绍兴电信 万网空间购买 免费邮件服务器 畅行云 lamp什么意思 97rb 七牛云存储 更多