+ -
当前位置:首页 → 问答吧 → PHP多线程问题,求大家帮帮忙。。。

PHP多线程问题,求大家帮帮忙。。。

时间:2011-07-01

来源:互联网

我做的是webservice的服务端,现在 客户端 触发两个事件,要我这边来做,因为这两个事件比较费时,我想每次触发的时候都起一个线程,每次运行完后,该线程自动销毁。请问我应该怎么来写呢? 我对多线程不是很了解,只有这30分啦,请大家帮帮忙啊~  
  server端是运行在linux下的,用php来编写。
  另外,客户端触发后不需要等待结果,与server端是异步的。。

作者: MMDD0827   发布时间: 2011-07-01

php本身是没有线程机制的,只能按顺序执行的。另想办法吧!

作者: rgmlkthh   发布时间: 2011-07-07

pcntl_fork

作者: tlikai   发布时间: 2011-07-07

php本身没有多线程。
只能模拟。你去搜一下相关资料吧。

作者: A82168506   发布时间: 2011-07-07

我认为你的想法是有问题的,还局限在桌面应用上

所谓 客户端触发两个事件 其实是创建了两个 http 连接,两者是独立的,互不相干
当然如果是同步连接,比如表单,那么一定是要等待返回的
如果是异步连接,比如ajax,那就不需要去等待了

注意:这两个连接将在服务器中产生两个webservice实例,他们也是互不相干的。虽然使用的是同一个程序文件

作者: xuzuning   发布时间: 2011-07-07

这是异步的问题

这是个触发本地服务器异步执行的客户端页面code 可参照下
PHP code

$fp = fsockopen("localhost", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />";
} else {
    $out = "GET /00test/test2.php / HTTP/1.1\r\n";
    $out .= "Host: localhost\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    fclose($fp);
    echo 'OK';
}



另外需要注意的是 你的服务器端程序要设置客户端断开仍然执行和超时执行

作者: PIGer920   发布时间: 2011-07-07

热门下载

更多