Questions sur méthodes d'un objet appelant threads
Bonjour
Voila mon problème, j'ai une classe représentant un objet de type hash qui contient les méthodes md5, sha1...sha512.
Ces méthodes créent des objets de type thread_algo (thread_md5, thread_sha1...) qui lorsqu'ils sont appelés calculent le hash d'une chaine passée en paramètre avant d'en retourner la valeur dans une variable récupérée ensuite par la méthode de l'objet hash qui la retourne.
Ma question est la suivante :
Dans mon programme principal, puis-je créer un objet hash et en appeler successivement les méthodes de calcul sans problème ? ou cela va-t-il poser problème (execution non simultanée ou des trucs du genre).
Ca donnerai quelque chose du genre :
Code:
1 2 3 4 5
| a = hash(string_to_hash)
a.md5()
a.sha1()
a.sha224()
.... |
Avec l'objet hash (incomplet) :
Code:
1 2 3 4 5
|
class hash():
def md5(self):
threadmd5 = thread_md5(self.target) # en admetant que self.target soit déclarer dans la fonction __init__
return threadmd5.result() |
Et l'objet thread_md5 :
Code:
1 2 3 4 5 6 7 8 9
|
class thread_md5(threading.Thread):
def __init__(self, target):
threading.Thread.__init__(self)
self.target = target
def run(self):
self.result = hashlib.md5(self.target).hexdigest()
def result(self):
return self.result |
Autre question : Ne vais-je pas utiliser beaucoup trop de mémoire en transmettant la chaine target d'objet en objet en en créant une copie propre à chaque thread etc... ? Comme ca doit pouvoir être rapide sur de gros fichiers ca me préoccupe.
Merci de votre aide.
Au revoir