articles sur l'utilisation du pool de threads python
May 02, 2018 pm 02:29 PMCet article présente principalement en détail l'utilisation du pool de threads Python, qui a une certaine valeur de référence. Les amis intéressés peuvent s'y référer
Je travaille actuellement sur un projet de gestion de périphériques vidéo, les périphériques incluent (caméra). , DVR, NVR, etc.), y compris l'achèvement des informations sur l'appareil, la transmission de l'état de l'appareil, l'envoi de l'adresse du flux de l'appareil, etc. Si un grand nombre d'appareils sont importés en même temps, si un seul thread est utilisé pour la détection des appareils, alors en raison au grand nombre de périphériques S'il y en a trop, cela entraînera un retard important, pensez donc au multithreading pour gérer ce problème.
Vous pouvez utiliser le langage python pour implémenter le pool de threads vous-même, ou vous pouvez utiliser le package tiers threadpool thread pool. Cette rubrique présente principalement l'utilisation du pool de threads et son implémentation spécifique.
1.Installation
Utiliser l'installation :
pip installthreadpool
2. Utilisez
(1) Présentez le module threadpool
(2) Définissez la fonction de thread
(3) Créez un pool de threads threadpool.ThreadPool()
(4) Créer un besoin Les tâches gérées par le pool de threads sont threadpool.makeRequests()
(5) Mettez les multiples tâches créées dans le pool de threads, threadpool.putRequest
(6) Attendez que toutes les tâches soient traitées theadpool.pool ()
import threadpool def ThreadFun(arg1,arg2): pass def main(): device_list=[object1,object2,object3......,objectn]#需要处理的设备个数 task_pool=threadpool.ThreadPool(8)#8是线程池中线程的个数 request_list=[]#存放任务列表 #首先构造任务列表 for device in device_list: request_list.append(threadpool.makeRequests(ThreadFun,[((device, ), {})])) #将每个任务放到线程池中,等待线程池中线程各自读取任务,然后进行处理,使用了map函数,不了解的可以去了解一下。 map(task_pool.putRequest,request_list) #等待所有任务处理完成,则返回,如果没有处理完,则一直阻塞 task_pool.poll() if __name__=="__main__": main()
Ce qui précède est un processus d'utilisation du pool de threads spécifique
La définition spécifique du pool de threads est la suivante :
class ThreadPool: """A thread pool, distributing work requests and collecting results. See the module docstring for more information. """ def __init__(self, num_workers, q_size=0, resq_size=0, poll_timeout=5): pass def createWorkers(self, num_workers, poll_timeout=5): pass def dismissWorkers(self, num_workers, do_join=False): pass def joinAllDismissedWorkers(self): pass def putRequest(self, request, block=True, timeout=None): pass def poll(self, block=False): pass def wait(self): pass
La section suivante présentera l'ensemble du processus ci-dessus et chaque fonction en détail : pool de threads python (implémentation)
Connexe recommandations :
Implémentation du pool de threads python threadpool
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Quels sont les avantages et les inconvénients des modèles ?

Google AI annonce Gemini 1.5 Pro et Gemma 2 pour les développeurs

Pour seulement 250$, le directeur technique de Hugging Face vous apprend étape par étape comment peaufiner Llama 3

Partagez plusieurs frameworks de projets open source .NET liés à l'IA et au LLM

Un guide complet sur le débogage et l'analyse des fonctions Golang
