Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utilisation du module ThreadPool

1 réponse
Avatar
Salvatore
Bonsoir,

Voici un cas d'utilisation du module threadpool


from threadpool import *
import time
import sys
import random

src = ["src_user%d"%i for i in range(5)]
dest = ["dest_user%d"%i for i in range(5)]

src2dest = zip(src, dest)

reconnectedsrc2dest = {}

main = ThreadPool(5)

def end_reconnection(requete,couple):
m = "\n--- Reconnexion de : (%s,%s) ---\n"%(couple[0], couple[1])
time.sleep(1)
sys.stdout.write(m)

def reconnection(couple):
m = "(%s,%s) en cours de reconnnexion \n"%(couple[0],couple[1])
while not reconnectedsrc2dest[couple]:
time.sleep(random.random()*3)
sys.stdout.write(m)
return couple

def isUserReconnected(couple):
# Dans la realite : requete Exchange pour tester
# l'existence de l'attribut 'homeMDB' sur couple[1]
i = int(random.random()*4)
return (i == 3)

requete = makeRequests(reconnection, src2dest, end_reconnection)

for req in requete:
main.putRequest(req)
reconnectedsrc2dest[req.args[0]] = False

while 1:
try:
main.poll()
time.sleep(1)
for couple in src2dest:
if isUserReconnected(couple[1]):
if len(src2dest) > 0:
reconnectedsrc2dest[couple] = True
src2dest.pop(src2dest.index(couple))

except NoResultsPending:
print "Fin Normale"
break
except KeyboardInterrupt :
print "Arret Utilisateur, destruction des Threads"
for worker in main.workers:
worker.terminate()
break

print "Termine"

1 réponse

Avatar
MC
Hi!

Voici un cas d'utilisation du module threadpool


Ok! Ok! But threadpool is not in then standard library...
Perhaps here : http://cheeseshop.python.org/pypi/threadpool









--
@-salutations

Michel Claveau