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 [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> 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 [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> 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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-appengine?hl=en.