suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Als Hintergrund wird PHP verwendet. Kann eine Webanfrage über mehrere Prozesse oder Threads verarbeitet werden?

Es wird gesagt, dass PHP keine Multiprozesse unterstützt.
Ist dieses Szenario also nicht für PHP geeignet? Wenn ich die Informationen von tausend Daten aktualisieren, eine SQL-Datei hochladen und sie dann nacheinander ausführen möchte, ist dies definitiv sehr langsam. Kann ich pcntl_-bezogene Funktionen im Code verwenden, um die Mehrprozessverarbeitung dieser Anforderung zu implementieren? ?
http://php.net/manual/zh/intr...

Process Control should not be enabled within a web server environment and unexpected results may happen if any Process Control functions are used within a web server environment.
At least for PHP 5.3.8 which I am using, and who knows how far back, it's not a matter of "should not", it's "can not". Even though I have compiled in PCNTL with --enable-pcntl, it turns out that it only compiles in to the CLI version of PHP, not the Apache module. As a result, I spent many hours trying to track down why function_exists('pcntl_fork') was returning false even though it compiled correctly. It turns out it returns true just fine from the CLI, and only returns false for HTTP requests. The same is true of ALL of the pcntl_*() functions.

Es heißt, dass pcnt für HTTP-Anfragen ungültig ist und nur im CLI-Modus anwendbar ist. Können Sie mir bitte sagen, wie PHP mit einem solchen Szenario umgehen soll? Kann dies nur durch das Ausleihen anderer Sprachen erreicht werden?

为情所困为情所困2762 Tage vor684

Antworte allen(4)Ich werde antworten

  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-05 11:11:26

    可以使用队列或者swoole

    Antwort
    0
  • 伊谢尔伦

    伊谢尔伦2017-06-05 11:11:26

    PHP可以借助扩展做并发

    Antwort
    0
  • PHPz

    PHPz2017-06-05 11:11:26

    你一个进程去做不就好了。。只有后台才有这种需求吧。。。一个进程足矣

    Antwort
    0
  • 習慣沉默

    習慣沉默2017-06-05 11:11:26

    不是说不可以,只有你会不会的问题,swoole可以做这个,用协程并发性能很好,php虽然不是最好的语言,但也被低估的语言. 多线程不一定好.

    Antwort
    0
  • StornierenAntwort