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,这说明两个进程是异步执行的。

  • 相关阅读:
    第八周总结和实验六
    第七周总结与实验五
    遍历目录中的所有文件和目录,并生成全路径
    python watchdog
    Offer_answer_with_SDP_rfc3264
    [转]UML八大误解
    leetcode周赛220
    Codeforces Round #690 (Div. 3)
    学习资料
    鱼眼图与六面图转换(python)
  • 原文地址:https://www.cnblogs.com/zox2011/p/2917462.html
Copyright © 2011-2022 走看看