====== Multithread en PHP ====== La programmation multithreadée en PHP est un véritable casse tête, en effet il n’existe pas à l’heure d’aujourd’hui de véritable moyen de faire du multithread en PHP 5. Et puis cela peut poser des problèmes de partage des ressources, je pense notamment à l'accès aux base de données. ===== Utilisation de "vrais" threads ===== Ce n'est pas possible de le faire directement en Php, mais certains ceux sont lancés dans l'aventure de faire une extension "PECL", qui donne donc une "DLL" : [[http://blog.lalex.com/post/2004/06/15/Multi-threading-en-PHP-:-vers-une-solution-MAJ|Introduction à l'extension php_thread]]. [[http://cvs.php.net/viewvc.cgi/pecl/threads/|Code source]]. ===== Multiplexing ===== On peut faire sans le Threading en faisant du multiplexage de scripts. ==== Utilisation des streams ==== Une utilisation astucieuse des streams permet d’effectuer simultanément plusieurs requêtes. La méthode est expliquée par [[http://netevil.org/blog/2005/may/guru-multiplexing|Wez Furlong]]. ==== Utilisation de Curl ==== L’extension Curl pour PHP, qui permet d’exécuter simplement des requêtes à travers différents protocoles, offre aussi une possibilité de simili multithread avec des requêtes asynchrones. * [[http://www.ibuildings.com/blog/archives/811-Multithreading-in-PHP-with-CURL.html|Multithreading-in-PHP-with-CURL]] * [[https://docs.guzzlephp.org/en/stable/quickstart.html#concurrent-requests|Guzzle async/concurrent requests]] * [[https://lbacik.medium.com/asynchronous-php-1d94af9e0f19|Asynchronous PHP (with Curl)]] ==== Utillisation d’AJAX ==== La dernière solution consiste à créer une page mère, qui lancée depuis un navigateur, ferrais différentes requêtes AJAX vers plusieurs scripts qui seraient alors traités simultanément. Attention, il existe généralement une limite d’appels simultanés sur les navigateurs web.