[Python] python threads, how to store results from a multithread code

Massimo Di Stefano massimodisasha a gmail.com
Ven 9 Dic 2011 22:03:38 CET


scusami ma di ignoranza ne ho il cervello pieno,
come si usa il loco ?
come implementarlo nell'esempio che ho postato ?

ho provato con :
> lock = Threading.Lock()
ma nn mi e' cambiato  nulla.

####
import threading
import urllib
from tempfile import NamedTemporaryFile

class download(threading.Thread):
	def __init__(self, sitecode, lista):
		threading.Thread.__init__(self)
		self.sitecode = sitecode
		self.status = -1
		
	def run(self):
		url = 'http://waterdata.usgs.gov/nwis/monthly?referred_module=sw&site_no='
		url += self.sitecode 
		url += '&PARAmeter_cd=00060&partial_periods=on&format=rdb&submitted_form=parameter_selection_list'
		tmp = NamedTemporaryFile(delete=False)
		urllib.urlretrieve(url, tmp.name)
		print 'loaded Monthly data for sitecode : ',  self.sitecode 
		lista.append(tmp.name)
		print lista

sitecodelist = ['01046500', '01018500', '01010500', '01034500', '01059000', '01066000', '01100000']
lista = []
for k in sitecodelist:
	get_data = download(k,lista)
	get_data.start()
####
mi printa la lista .. ma

non mi e' affatto chiaro come fare il "return" dell'oggetto 'lista'.





Il giorno Dec 9, 2011, alle ore 3:41 PM, Daniele Maccio ha scritto:

> Il 09 dicembre 2011 21:38, Massimo Di Stefano
> <massimodisasha a gmail.com> ha scritto:
>> e quello che sto provando a capire come si fa … :(
>> 
> 
> lock = Threading.Lock()
> 
> class MioThreadAntani....:
>    def MioMetodoConcorrenzialeEtc....:
>         ...
>         ...
>         # Area pericolosa accesso dati condivisi dai thread
>         with lock:
>             lista.append(path)
>         ...
>         ...
> 
> Forse mi sto perdendo qualcosa, ma non basterebbe questo?
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python



Maggiori informazioni sulla lista Python