zoukankan      html  css  js  c++  java
  • PHP多进程协作编程之socket

    基本思路:通过SOCKET请求其他PHP脚步,实现PHP的多进程的异步执行。

    废话就不多说了,请看下面的脚步并执行之。

    <?php
    //a.php
    function runThread(){
    $fp = fsockopen('127.0.0.1', 82, $errno, $errmsg);
    fputs($fp, "GET /a.php?act=b/r/n"); //这里的第二个参数是HTTP协议中规定的请求头
    //不明白的请看RFC中的定义
    fclose($fp);
    }
    
    
    
    function a(){
    $fp = fopen('result_a.log', 'w');
    fputs($fp, 'Set in ' . Date('h:i:s', time()) . (double)microtime() . "/r/n");
    fclose($fp);
    }
    
    
    
    function b(){
    $fp = fopen('result_b.log', 'w');
    fputs($fp, 'Set in ' . Date('h:i:s', time()) . (double)microtime() . "/r/n");
    fclose($fp);
    }
    if(!isset($_GET['act'])) $_GET['act'] = 'a';
    if($_GET['act'] == 'a')
    {
    runThread();
    a();
    echo 'ok';
    }
    else if($_GET['act'] == 'b') {
    b();
    }
    ?>

    通过观察result_a.log与result_b.log:

    result_a.log:  Set in 03:45:560.293005

    result_b.log:  Set in 03:45:560.296877

    我们发现,先写了result_a.log文件后写了result_b.log,这说明两个进程是异步执行的。

  • 相关阅读:
    用户场景描述
    个人工作总结(第一阶段)
    个人进度报告
    《构建之法》阅读笔记05
    《构建之法》阅读笔记04
    《构建之法》阅读笔记03
    2020寒假学习(14)
    2020寒假学习(13)
    2020寒假学习(12)
    2020寒假学习(11)
  • 原文地址:https://www.cnblogs.com/zox2011/p/2917462.html
Copyright © 2011-2022 走看看