搜索

首页  >  问答  >  正文

php循环问题

while($a<1000){

$a++;
foo();

}

假如foo()要消耗很多资源,要连网,要增删改查很多数据库啥的,是不是都要等foo()执行完了,才开始下一次循环?

巴扎黑巴扎黑2754 天前376

全部回复(3)我来回复

  • 滿天的星座

    滿天的星座2017-05-16 13:17:15

    yes.php里面的执行权问题..

    只有等函数执行完毕之后才会把执行权交回调用处继续执行下面代码.

    回复
    0
  • 怪我咯

    怪我咯2017-05-16 13:17:15

    是。所以才叫单线程

    回复
    0
  • 滿天的星座

    滿天的星座2017-05-16 13:17:15

    要等foo函数执行完毕才会执行下一个循环,PHP是单进程阻塞执行,异步执行需要swoole扩展,或在linux下借助pcntl扩展实现多进程,将耗时操作放到子进程中执行,也可以使用pthreads扩展实现多线程,但要在TS版本PHP下执行

    回复
    0
  • 取消回复