PHP中的并发性

lol*_*ter 9 php mysql api concurrency server-side

我正在我的PHP服务器端API中,我正在进行大量的MySQL查询,我想通过让多个线程处理不同的查询然后返回结果来加快速度.

但是如何在PHP中创建另一个线程?我正在传递POST params,所以一个简单的shell_exec()可以工作,但似乎有点不安全.我正在考虑的选项:

1)使用我拥有的参数发出cURL请求,处理请求中的JSON然后返回

2)shell_exec()用PHP CLI 调用a 并以某种方式(我将如何做到这一点?)处理PHP中的响应

这里最好的选择是什么?

rid*_*rid 4

PHP 中不支持线程。然而,您可以使用pcntl扩展来生成和管理分叉,但如果您得出应该使用线程来完成事情的结论,最好再次查看您的算法。

异步处理长时间运行的操作的一个选项是将它们存储在数据库中,并让后台工作进程从数据库中获取它们,计算结果,然后将结果存储在数据库中。然后,前端脚本会在数据库中查找它们,看看它们是否已完成以及结果是什么。