看来是基本可能性为0
看如下的代码
function runThread() { $fp = fsockopen('localhost', 80, $errno, $errmsg); fputs($fp, "GET /test/thread/a.php?act=b\r\n\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(); } else if($_GET['act'] == 'b') b(); ?>
不知道是测试代码错误,反正返回结果只有a.log
而所谓的b.log那是不可能的,所以多线程还是回归伟大的微软编程吧