Maison  >  Article  >  développement back-end  >  Comment implémenter le multi-threading en php

Comment implémenter le multi-threading en php

不言
不言original
2019-01-25 14:18:0731750parcourir

Le multi-threading peut être implémenté en PHP. Il utilise l'ancienne fonction exec pour réaliser le multi-threading via un traitement asynchrone. La fonction exec elle-même est une fonction PHP qui exécute des programmes externes. Examinons de plus près comment implémenter le multi-threading PHP.

Manuel recommandé : Manuel d'auto-apprentissage complet en Comment implémenter le multi-threading en php

Comment implémenter le multi-threading en php

Regardons d'abord un exemple

<?Comment implémenter le multi-threading en php
 
class execMulti {
    function MultithreadTest {
        exec("Comment implémenter le multi-threading en php static_massive.Comment implémenter le multi-threading en php > /dev/null &");
 
        echo "处理完成了";
    }
}
?>

Lorsque l'opération ci-dessus est effectuée, la fin du traitement est affichée avant même la fin du traitement fastidieux.

exec("Comment implémenter le multi-threading en php static_massive.Comment implémenter le multi-threading en php > /dev/null &");

La valeur renvoyée par ">/dev/null&" étant manquante, nous n'attendrons pas de réponse.

Par conséquent, l'indication d'achèvement du traitement est plus rapide qu'un traitement qui prend du temps.

Cependant, cette méthode ne sait pas quand le traitement fastidieux prendra fin.

N'oubliez pas d'envisager d'utiliser l'exécution de journaux, la connexion à la base de données et d'autres méthodes pour fournir les résultats d'exécution aux utilisateurs.

Méthodes de multi-threading (pthreads)

Enfin, la méthode d'utilisation du module d'extension PHP pthreads est introduite.

Cela peut être plus simple que la méthode ci-dessus en utilisant exec.

①Configurez l'environnement et installez Comment implémenter le multi-threading en php

Veuillez utiliser vagrant pour préparer votre environnement préféré.

Comment implémenter le multi-threading en php doit utiliser la version thread-safe, qui est une implémentation multithread et sûre.

Téléchargez la version thread-safe de PHP sur le site officiel.

Accédez au contenu ci-dessous et téléchargez-le à partir de la case rouge dans l'image.

http://www.Comment implémenter le multi-threading en php.net/downloads.Comment implémenter le multi-threading en php

Comment implémenter le multi-threading en php

De plus, pour une installation thread-safe, vous devez spécifier -enable- en utilisant l'option de configuration mainteneur-zts.

./configure --enable-maintainer-zts

Vous pouvez également installer les options Apache et MySQL selon vos besoins.

Confirmez simplement la version Comment implémenter le multi-threading en php avec la commande suivante.

Comment implémenter le multi-threading en php -v

Installation de ②pthreads

Téléchargeons le format zip.

https://github.com/krakjoe/pthreads/archive/master.zip

Décompressez le zip, accédez au fichier décompressé et exécutez Comment implémenter le multi-threading en phpize.

Si vous exécutez pthreads sur la liste des modules PHP, vous pouvez effectuer les opérations suivantes.

Comment implémenter le multi-threading en php -m

En fonction de l'environnement, les paramètres dans cette zone seront différents. Vous pouvez utiliser le nom de l'environnement + pthreads pour rechercher des informations.

③ Essayez d'utiliser le multi-threading

L'exemple est le suivant

<?Comment implémenter le multi-threading en php
class pthreadsTest extends Thread {
    public function run () {
        sleep(5);
    }
}
$ts1 = new pthreadsTest();
$ts1->start(); 
$ts2 = new pthreadsTest();
$ts2->start(); 
?>

Parce que sleep(5) est appelé deux fois , cela prend 10 secondes, mais en réalité ce sera 5 secondes.

Articles connexes recommandés :
1.Comment implémenter le multi-threading en PHP
2.Trois façons d'implémenter le multi-threading en PHP
Recommandations vidéo associées :
1.Dugu Jiujian (4)_Tutoriel vidéo PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn