博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php模拟多线程
阅读量:5101 次
发布时间:2019-06-13

本文共 785 字,大约阅读时间需要 2 分钟。

一:应该知道的:

php本身是不支持多线, 但是php的好搭档,apache和linux是支持的,故lamp才是最佳组合,还在使用win服务器的现在知道为什么要用linux吧。既然是模拟的, 就不是真正的多线程. 其实只是.

 

二:实现方法:

1、借助shell脚本实现多线程

 

注意:这里为了让脚本执行时间更长,方便看效果,sleep一下

shell脚本如下:

 

#!/bin/bash  for i in 1 2 3 4 5 6 7 8 9 10  do  /usr/bin/php -q /var/www/html/test.php &done

 

    注意到在请求php代码的那行有一个&符号吗,这个是关键,不加的话是不能进行多线程的,&表示讲服务推送到后台执行,因此,在shell的每次的循环中不必等php的代码全部执行完在请求下一个文件,而是同时进行的,这样就实现了多线程,下面运行下shell看下效果,这里你将看到10个test.php进程再跑,再利用linux的定时器,定时请求这个shell,在处理一些需要多线程的任务。

2、利用apache的多进线程特性(例如:可以同时让多人一起访问,如果不支持,则必须一个一个访问

 

注意:pcntl_fork,proc_open,popen 都是利用多httd的多线程来模拟多线程的。(参考:http://blog.51yip.com/php/992.html)

参考: php实现多线程(实际是多进程,跨平台) http://blog.csdn.net/phphot/article/details/1906928

 

3、

http://www.oschina.net/question/264729_138585

 

 

 

转载于:https://www.cnblogs.com/Alight/p/3652538.html

你可能感兴趣的文章
面向对象的小demo
查看>>
微服务之初了解(一)
查看>>
GDOI DAY1游记
查看>>
收集WebDriver的执行命令和参数信息
查看>>
数据结构与算法(三)-线性表之静态链表
查看>>
mac下的mysql报错:ERROR 1045(28000)和ERROR 2002 (HY000)的解决办法
查看>>
Hmailserver搭建邮件服务器
查看>>
django之多表查询-2
查看>>
快速幂
查看>>
改善C#公共程序类库质量的10种方法
查看>>
AIO 开始不定时的抛异常: java.io.IOException: 指定的网络名不再可用
查看>>
MyBaits动态sql语句
查看>>
HDU4405(期望DP)
查看>>
拉格朗日乘子法 那些年学过的高数
查看>>
vs code 的便捷使用
查看>>
Spring MVC @ResponseBody返回中文字符串乱码问题
查看>>
用户空间与内核空间,进程上下文与中断上下文[总结]
查看>>
JS 中的跨域请求
查看>>
JAVA开发环境搭建
查看>>
mysql基础语句
查看>>