suchen

Heim  >  Fragen und Antworten  >  Hauptteil

PHP-Schleifenproblem

while($a<1000){

$a++;
foo();

}

Wenn foo() viele Ressourcen verbraucht, mit dem Internet verbunden sein muss, viele Datenbanken hinzufügen, löschen, ändern und überprüfen usw. müssen wir warten, bis foo() die Ausführung abgeschlossen hat, bevor wir mit der nächsten beginnen können Zyklus?

巴扎黑巴扎黑2784 Tage vor397

Antworte allen(3)Ich werde antworten

  • 滿天的星座

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

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

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

    Antwort
    0
  • 怪我咯

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

    是。所以才叫单线程

    Antwort
    0
  • 滿天的星座

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

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

    Antwort
    0
  • StornierenAntwort