cyber
乞丐
超级管理员
UID 15380
精华
0
积分 -6
帖子 1147
金钱 -6 喜悦币
威望 0
人脉 0
阅读权限 1
注册 2002-7-21
状态 离线
|
PHP如何实现多线程
<?php
/*PHP多线程演示*/
if(!isset($id))
{
for($id=1;$id<4;$id++)
thread($id);//提交四个请求
}
else
{
//开始处理得到的每个请求
$fp=fopen("$id.txt","w");
fwrite($fp,time());
fclose($fp);
}
function thread($id)
{//提交请求(这里是提交给自己)
global $PHP_SELF;
$host=$_SERVER['HTTP_HOST'];
$h=fsockopen($host,80);
fputs($h,"GET $PHP_SELF?id=$id\r\n");
fclose($h);
}
?>
这个是否实现了PHP的多线程?
经测试.
当把$id<4改为$id<4000时,
文件 1.txt 到38.txt的内容是一样的
39.txt的内容比38.txt 的内容大1
可见经过一秒,才到39.txt.
我觉得这只能说明 这个循环在一秒内执行了38次,而非多线程.
如果改为
if(!isset($id))
{
for($id=1;$id<4;$id++) {
$fp=fopen("$id.txt","w");
fwrite($fp,time());
fclose($fp);
}
}
同样可达到效果.以上解说是否有道理
|  世界上第一个PHP专业搜索引擎:htp://bunsou.com |
|