让我们看一下这段典型的 PHP 代码:
function names()
{
$data = Http::get('data.location/products')->json();
$names = [];
foreach ($data as $item){
$names[] = $item['name'];
}
return $names;
}
我们发送一个返回项目数组的 HTTP 请求,然后我们将每个项目的名称存储在一个 $names 数组中。
执行此函数所花费的时间等于请求的持续时间加上构建数组所花费的时间。如果我们想为不同的数据源多次运行这个函数怎么办:
$products = names('/products');
$users = names('/users');
运行此代码所花费的时间等于两个函数组合的持续时间:
HTTP request to collect products: 1.5 seconds Building products names array: 0.01 seconds HTTP request to collect users: 3.0 seconds Building users names array: 0.01 seconds Total: 4.52 seconds

这称为同步代码执行,或一次执行一件事。为了使此代码运行得更快,您可能希望异步执行它。那么,如果我们想实现这一目标,我们有哪些选择呢?
- 在

这篇博客探讨了在PHP中实现异步执行的三种方式:多进程、多线程和协程。通过示例说明了每个方法的工作原理和性能特点,指出多进程在某些情况下可能不是最高效的,而PHP的多线程不被支持,协程则提供了一种更节省资源的解决方案,允许在等待I/O操作时执行其他任务。最后,强调了非阻塞I/O在协程中的重要性,并预告了后续将研究Laravel与协程的结合。
最低0.47元/天 解锁文章
1031

被折叠的 条评论
为什么被折叠?



