interesting threading result..
Gabriel Genellina
gagsl-py2 at yahoo.com.ar
Mon Oct 29 20:13:04 EDT 2007
En Mon, 29 Oct 2007 20:26:40 -0300, Abandoned <besturk at gmail.com> escribió:
> Now this is my real code and the problem continue.
> What is the mistake?
I don't see where you define "query" so this can't be your complete code.
>
> import threading
>
>
> class GetData(threading.Thread):
> def __init__(self, name):
> threading.Thread.__init__(self)
> self.name = name
>
>
> def run(self):
> self.data={2:3, 3:4}
>
>
> i=0
> datas={"n": [['msn']]}
> nglist=nlist={0: list()}
Here, you make nglist and nlist refer to the same object (a dictionary,
not a list!)
To be short: nglist and nlist are the same thing
> for x in query:
> tip=x
> for a in datas[x]:
> for o in a:
> if len(o)>1:
> current = GetData(o)
> nglist[i].append(current)
> current.start()
Here, you append current to nglist[i]. current is an instance of the
GetData class, a Thread. As nglist is the same thing as nlist, nlist[i]
contains a GetData instance too.
> i=i+1
>
> for x in range(0,len(nglist)):
> for jk in range(0,len(nglist[x])):
> jkl=nglist[x][jk]
> jkl.join()
> sonuc=jkl.data
> nlist[x].append(sonuc)
>
> print nlist
> {0: [<GetData(Thread-1, stopped)>, {2: 3, 3: 4}]}
It's not surprising to see here the object appended above.
I can't say how to improve/fix this because I can't see the purpose of all
this. Could you explain what do you want to do exactly?
--
Gabriel Genellina
More information about the Python-list
mailing list