PHP线程和高延迟文件访问(例如; FTP)

时间:2012-05-13 23:18:47

标签: php multithreading resources

这有点复杂,所以请不要妄下结论,随便询问任何不够清楚的事情。

基本上,我有一个用PHP编写的websocket服务器。请注意,websocket消息是异步的,也就是说,对请求的响应可能需要花费很多时间,而客户端一直在工作(如果适用)。

客户端应该要求服务器访问其他服务器上的文件。对于此事,这可以是FTP服务或Dropbox。

在这里,请注意两个问题:连接应该被共享和重用并且服务器在其工作时实际上“冻结”,因此任何请求都会被处理在服务器“解冻”之后。

因此,我想,为什么不卸载文件访问权限(冻结服务器)到PHP threads

这里的问题是双重的;

  • 如何在子线程可用的主线程(服务器)中建立连接资源(上述线程模型无法实现)?
  • 如果两个线程最终需要相同的资源会发生什么?如果一方被锁定直到另一方完成,那就完全没问题了,但我们仍然需要找出问题#1。

也许我的思路都搞砸了,如果你能找到更好的解决方案,我很想听听。我也想过拥有一个托管连接资源的PHP线程,但它的内存非常密集。

1 个答案:

答案 0 :(得分:5)

PHP不支持任何线程。 PHP的目的是快速响应Web请求。这就是构建体系的目的。不同的库尝试做类似线程的事情,但它们通常会导致比他们解决的问题更多的问题。

一般来说,有两种方法可以达到你想要的效果: