Is python memory shared between theads?
Klaas
mike.klaas at gmail.com
Fri Dec 1 17:09:51 EST 2006
More information about the Python-list mailing list
Fri Dec 1 17:09:51 EST 2006
- Previous message (by thread): Python25.zip
- Next message (by thread): Is python memory shared between theads?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
John Henry wrote: > Wesley Henwood wrote: > > Is this normal behavior? Based on the little documentation I have been > > able to find on this topic, it is normal behavior. The only way to use > > same-named variables in scripts is to have them run in a different > > process, rather than different threads. > > Yes and No. > > local variables are local to each threads. Global variables are > global to the threads. That is somewhat misleading. _All_ variables accessible from two threads are shared. This includes globals, but also object attributes and even local variables (you could create a closure to share a local among threads). The only reason locals appear "thread-local" is that locals are "invokation-local" in that they are different bindings every time a function is executed, and generally a single invokation of a function is confined to a single thread. Another way to share local variables is to create a generator, and call .next() in two different threads... the local variables are simulatneously modifiable by both threads. FWIW, there is also threading.local(). -MIke
- Previous message (by thread): Python25.zip
- Next message (by thread): Is python memory shared between theads?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list