I have this code in one of my apps: townCache = {} def getTown(id): if not id in townCache: townCache[id] = TownModel.get_by_id(id) return townCache[id]
Is this thread safe? I think it is, because the worst that happens is the assignment happens redundantly with the same data. Random other question: Why don't I have to say "global townCache" at the top of that function? On Jun 29, 2011, at 7:43 AM, Joshua Smith wrote: > I would assume they are the same as the basic principles of thread safety in > any language: > > - Don't rely on global state, because multiple of your functions might be > running simultaneously > > This usually isn't very hard to achieve - just pass parameters instead of > modifying globals. The places where it can get tricky are where you really > *want* to use global state, such as for an in-memory cache. Usually the > language provides some primitives to ensure that only one thread at a time is > updating the cache. It appears that python gives you thread-safety for a lot > of cases: > > http://effbot.org/zone/thread-synchronization.htm > > On Jun 29, 2011, at 1:20 AM, Greg wrote: > >> Hi - >> >> Could anyone familiar with threads explain the basic principals of >> python thread-safety? >> >> Cheers! >> Greg. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Google App Engine" group. >> To post to this group, send email to google-appengine@googlegroups.com. >> To unsubscribe from this group, send email to >> google-appengine+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/google-appengine?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine" group. > To post to this group, send email to google-appengine@googlegroups.com. > To unsubscribe from this group, send email to > google-appengine+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/google-appengine?hl=en. > -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.