在PHP中并行调用多个函数
我在控制器上有以下代码在PHP中并行调用多个函数,php,laravel,Php,Laravel,我在控制器上有以下代码 class SomController extends Controller { public function index(){ $var1 = $this->function1(); $var2 = $this->function2(); $var3 = $this->function3(); $var4 = $this->funct
class SomController extends Controller
{
public function index(){
$var1 = $this->function1();
$var2 = $this->function2();
$var3 = $this->function3();
$var4 = $this->function4();
return view('someview', array(self::SOME1 => $var1,self::SOME2 => $var2,self::SOME3 => $var3,self::SOME4 => $var4));
}
}
所以我想并行调用这4个函数,然后等待所有的函数完成,以便渲染laravel视图,我尝试使用pthreads、pcntl_fork,我甚至使用hhvm和hack,没有很好的结果,也没有并行结果有更简单的方法来实现吗 纯粹用PHP无法做到这一点,这只是像PHP、Ruby和Python这样的同步编程语言的本质,从代码开始到结束逐个执行代码。如果您想这样做,那么可以使用一种异步语言,比如Node.js,或者尝试搜索异步PHP库(不建议这样做,因为没有成熟的解决方案)
但是在这里:很多大公司在他们的网站上使用同步语言,如Google、Youtube、Bootcamp等。大多数时候,你真正需要的是首先巧妙地执行你的程序,然后如果你真的需要异步化请求,就在用户端使用AJAX,但这会使您的代码比您真正需要的代码复杂得多。您已经尝试了最简单的方法;但是为什么需要并行执行呢?为了更好地执行,我不完全确定您的用例是什么,但是如果它有意义,您可以考虑创建一个基于事件的系统,然后从前端侦听事件。(或者,如果你不需要完整的事件系统,也可以从你的视图中调用一些简单的Ajax。)这可以让你的应用程序的多个实例同时处理不同的事情,但这确实会增加你的应用程序的复杂性project@Jaime我对此有意见,我应该从Thread扩展,并且我有我的run方法,但是如何为每个函数创建一个线程呢?同班