时间:2021-07-01 10:21:17 帮助过:16人阅读
/**
 * 函数 tenor
 * 功能 启动一个url,但不等待返回
 * 参数 $page,待执行的页面程序
 * 返回 无
 **/
if(! function_exists('tenor')):
function tenor($page) {
        $host = $_SERVER["HTTP_HOST"];
        $fp = fsockopen($host, 80, $errno, $errmsg);
        if(!$fp) {
                echo "$errstr ($errno)
\n";
        } else {
                fputs($fp,"GET /$page HTTP/1.0\nHost: $host\n\n");
                fclose($fp);//可能需要注释掉该行
        }
}
endif;
------解决方案--------------------
php 是不支持多线程的,更谈不上主线程和子线程了。  不过倒是有办法模拟这个环境,代码如下:
do {
 ?                        $mrc = curl_multi_exec($mh,$active);
 ?                } while ($mrc == CURLM_CALL_MULTI_PERFORM);
 ?                while ($active and $mrc == CURLM_OK) {
 ?                        if (curl_multi_select($mh) != -1) {
 ?                                do {
 ?                                        $mrc = curl_multi_exec($mh, $active);
 ?                                } while ($mrc == CURLM_CALL_MULTI_PERFORM);
 ?                        }
 ?                }
 ?是通过一个不停执行的循环 模拟的,
这个办法要是不行的话  就用系统的计划任务  定时去执行程序吧~
------解决方案--------------------
这种事还是用C吧, php只是为了Web而活的。。
具体程序架构怎么设计还得明确一下功能描述。