PHP 实现多线程方式? 比如pthreads ?

假如客户端http 请求到服务端过来,服务端需要从 三个地方获取数据,然后返回给客户端,比如从A 接口获取数据 a,从数据库查询数据b,从C接口 请求数据获得数据 c ,每个操作耗时 两秒,如果用同步阻塞方式,则需要6秒处理完返回给客户端,php有没什么并发实现的方式,则总耗时是 耗时最大的操作,2秒。比如多线程?

http://www.cnblogs.com/jackluo/p/3919168.html

方案1:

用c++写多进程方案,fork多个进程出来解决。主线程负责读取/存储数据,子线程负责curl。

方案2:

用php写多进程方案,同方案1.主线程读取,子线程curl。

但是由于php没有多进程,不能直接操控线程/进程。所以只能依赖于linux来实现多进程。

php函数pcntl_fork()可以创建进程,等同于linux的fork。

和fork不同的是,pcntl_fork返回的0是子进程,返回的id是子进程的pid(而fork是父进程返回0,子进程返回ppid).

注意pcntl_fork()函数必须要在linux上面才行,据说要加载pcntl.so模块,但貌似不加载也行。

方案3:

php+shell模拟多线程

直接上 PHP 官网看教程,上面有详细的说明。
http://www.php.net/manual/en/class.thread.php