首页 > 开发 > PHP > 正文

php多线程实现方法及用法实例详解

2024-05-04 23:39:49
字体:
来源:转载
供稿:网友
这篇文章主要介绍了php多线程实现方法及用法实例,PHP多线程实现方法和fsockopen函数有关,需要的朋友可以参考下
 

下面我们来介绍具体php多线程实现程序代码,有需要了解的同学可参考。
当有人想要实现并发功能时,他们通常会想到用fork或者spawn threads,但是当他们发现php不支持多线程的时候,大概会转换思路去用一些不够好的语言,比如perl。
其实的是大多数情况下,你大可不必使用fork 或者线程,并且你会得到比用fork 或thread 更好的性能。
假设你要建立一个服务来检查正在运行的n台服务器,以确定他们还在正常运转。你可能会写下面这样的代码:
代码如下 
 

  1. <?php 
  2. $hosts = array("host1.sample.com""host2.sample.com""host3.sample.com"); 
  3. $timeout = 15; 
  4. $status = array(); 
  5. foreach ($hosts as $host) { 
  6.  $errno = 0; 
  7.  $errstr = ""
  8.  $s = fsockopen($host, 80, $errno, $errstr, $timeout); 
  9.  if ($s) { 
  10.  $status[$host] = "Connectedn"
  11.  fwrite($s, "HEAD / HTTP/1.0rnHost: $hostrnrn"); 
  12.  do { 
  13.   $data = fread($s, 8192); 
  14.   if (strlen($data) == 0) { 
  15.   break
  16.   } 
  17.   $status[$host] .= $data; 
  18.  } while (true); 
  19.  fclose($s); 
  20.  } else { 
  21.  $status[$host] = "Connection failed: $errno $errstrn"
  22.  } 
  23. print_r($status); 
  24. ?> 
?
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表