Maison > Questions et réponses > le corps du texte
On dit que PHP ne prend pas en charge le multi-processus.
Alors ce scénario ne convient-il pas à PHP ? Si je souhaite mettre à jour les informations d'un millier de données, télécharger un fichier SQL, puis l'exécuter l'un après l'autre, cela sera certainement très lent. Puis-je utiliser les fonctions liées à pcntl_ dans le code pour implémenter le traitement multi-processus de cette requête. ?
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.
Il indique que pcnt n'est pas valide pour les requêtes http et n'est applicable qu'en mode cli. Pourriez-vous s'il vous plaît me dire, comment PHP devrait-il gérer ce type de scénario ? Cela ne peut-il être réalisé qu’en empruntant d’autres langues ?
PHPz2017-06-05 11:11:26
Faites-le en un seul processus. . Seul le backend a ce besoin. . . Un seul processus suffit
習慣沉默2017-06-05 11:11:26
Ce n'est pas que ce n'est pas possible, c'est juste une question de savoir si vous savez comment le faire, et les performances de concurrence liées à l'utilisation des coroutines sont très bonnes. Bien que PHP ne soit pas le meilleur langage, il l'est. aussi un langage sous-estimé n'est pas forcément bon .
.