首页 > 问答 > 正文
while($a<1000){
$a++; foo();
}
假如foo()要消耗很多资源,要连网,要增删改查很多数据库啥的,是不是都要等foo()执行完了,才开始下一次循环?
滿天的星座2017-05-16 13:17:15
yes.php里面的执行权问题..
只有等函数执行完毕之后才会把执行权交回调用处继续执行下面代码.
怪我咯2017-05-16 13:17:15
是。所以才叫单线程
要等foo函数执行完毕才会执行下一个循环,PHP是单进程阻塞执行,异步执行需要swoole扩展,或在linux下借助pcntl扩展实现多进程,将耗时操作放到子进程中执行,也可以使用pthreads扩展实现多线程,但要在TS版本PHP下执行