Travailler avec des threads en utilisant Apache et PHP

Est-il possible de travailler avec des threads en PHP via Apache (en utilisant un navigateur) sous Linux / Windows?

Le simple fait qu’il soit possible de faire quelque chose ne dit rien du tout si cela est approprié.

Les faits sont que le modèle de thread utilisé par pthreads + PHP est 1: 1, c’est-à-dire un thread utilisateur sur un thread de kernel.

Déployer ce modèle sur le front d’une application Web à l’intérieur d’Apache n’a pas vraiment de sens. Si un contrôleur frontal demande au matériel de créer un petit nombre de threads, par exemple 8 et que 100 clients demandent le contrôleur en même temps, vous demanderez à votre matériel d’exécuter 800 threads.

Les pthreads peuvent être déployés à l’intérieur d’Apache, mais cela ne devrait pas être le cas. Ce que vous devez faire est d’essayer d’isoler les parties de votre application qui nécessitent ce que le threading fournit et de communiquer avec le sous-système multithread isolé via une forme saine de RPC.

J’ai écrit pthreads, s’il vous plaît écoutez.

Fortement découragé.

La fonction pcntl_fork , si elle est autorisée dans votre configuration, va générer le serveur Apache lui-même, plutôt que le script, et vous ne pourrez probablement pas réclamer le processus enfant une fois celui-ci terminé. Cela conduit à de nombreux processus Apache zombie.

Je recommande d’utiliser un pool de travail d’arrière-plan, fonctionnant correctement en tant que démon / service ou au moins correctement détaché d’une console de lancement (par exemple à l’aide d’un screen ).

Aide-t-il?

[Edit] J’aurais offert ce qui précède comme un commentaire, mais je n’avais pas assez de réputation pour le faire (je trouve ça bizarre, de ne pas pouvoir commenter parce que tu es trop junior).

[Edit2] pthread semble être une solution valable! (que je n’ai pas essayé donc je ne peux pas conseiller)