comment puis-je obtenir variable dans la classe qui est en python remplacer multitraitement:override multitraitement en python
#!/usr/bin/env python
import multiprocessing
import os
class TestMultiprocess(multiprocessing.Process):
def __init__(self):
multiprocessing.Process.__init__(self)
self.myvar = ''
def myfunc(self):
return os.getpid()
def run(self):
self.myvar = self.myfunc()
mlist = []
for i in range(10):
t = TestMultiprocess()
mlist.append(t)
t.start()
for j in mlist:
t.join()
print t.myvar
je ne peux pas obtenir la valeur « myvar » de TestMultiprocess de classe, je viens d'obtenir en blanc. Mais je remplace déjà la fonction run() de Process.
désolé si mon sort très mal ...
je vois .. Mais si j'utilise la valeur ou Array combien de temps octets que je peux enregistrer avec cette variable partagée? parce que je l'essaie avec la réponse d'urllib2 j'obtiens l'erreur "chaîne trop longue" ... –
Vous ne pouvez pas stocker des choses de taille variable dans la mémoire partagée. La mémoire partagée obtient une taille fixe, vous devez utiliser exactement autant de mémoire que vous l'avez initialement allouée. Pour échanger des chaînes entre les processus, je recommande d'utiliser l'interface de file d'attente (qui sera un modèle de programmation différent). –