Maison >développement back-end >Tutoriel Python >multithread python3
Le multithreading est similaire à l'exécution de plusieurs programmes différents en même temps. Le multithreading présente les avantages suivants : (Apprentissage recommandé : Web front. -fin du didacticiel vidéo )
L'utilisation de threads peut mettre les tâches du programme à long terme en arrière-plan pour le traitement.
L'interface utilisateur peut être plus attrayante. Par exemple, lorsque l'utilisateur clique sur un bouton pour déclencher le traitement de certains événements, une barre de progression peut apparaître pour afficher la progression du traitement.
Le programme peut s'exécuter plus rapidement.
Les threads sont plus utiles pour implémenter certaines tâches en attente telles que la saisie utilisateur, la lecture et l'écriture de fichiers, ainsi que l'envoi et la réception de données sur le réseau. Dans ce cas, nous pouvons libérer certaines ressources précieuses telles que l'utilisation de la mémoire, etc.
Chaque thread indépendant possède un point d'entrée pour l'exécution du programme, une séquence d'exécution séquentielle et un point de sortie pour le programme. Cependant, les threads ne peuvent pas s'exécuter indépendamment et doivent exister dans le programme d'application, et le programme d'application fournit un contrôle d'exécution de plusieurs threads.
Chaque thread possède son propre ensemble de registres CPU, appelé contexte du thread, qui reflète l'état des registres CPU lors de la dernière exécution du thread.
Le registre du pointeur d'instruction et du pointeur de pile sont les deux registres les plus importants dans le contexte du thread. Le thread s'exécute toujours dans le contexte du processus. Ces adresses sont utilisées pour marquer la mémoire dans l'espace d'adressage du processus qui le possède. le fil.
Les fils de discussion peuvent être préemptés (interrompus).
Un thread peut être temporairement mis en attente (également appelé veille) pendant que d'autres threads sont en cours d'exécution - c'est ce qu'on appelle l'arrêt du thread.
Les threads peuvent être divisés en :
Threads du noyau : créés et révoqués par le noyau du système d'exploitation.
Thread utilisateur : Un thread implémenté dans le programme utilisateur sans prise en charge du noyau.
Les deux modules couramment utilisés dans les threads Python3 sont :
_thread
threading (recommandé)
le module thread a été abandonné . Les utilisateurs peuvent utiliser le module de thread à la place. Le module "thread" ne peut donc plus être utilisé en Python3. Pour des raisons de compatibilité, Python3 a renommé le thread en "_thread".
Commencez à apprendre les threads Python
Il existe deux façons d'utiliser les threads en Python : des fonctions ou des classes pour envelopper des objets de thread.
Fonctionnel : Appelez la fonction start_new_thread() dans le module _thread pour générer un nouveau thread. La syntaxe est la suivante :
_thread.start_new_thread ( function, args[, kwargs] )
Description du paramètre :
fonction - fonction thread.
args - les paramètres passés à la fonction thread, il doit être de type tuple.
kwargs - Paramètres facultatifs.
Exemple :
#!/usr/bin/python3 import _thread import time # 为线程定义一个函数 def print_time( threadName, delay): count = 0 while count < 5: time.sleep(delay) count += 1 print ("%s: %s" % ( threadName, time.ctime(time.time()) )) # 创建两个线程 try: _thread.start_new_thread( print_time, ("Thread-1", 2, ) ) _thread.start_new_thread( print_time, ("Thread-2", 4, ) ) except: print ("Error: 无法启动线程") while 1: pass
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!