On Jan 25, 11:26 am, Raymond Hettinger <[email protected]> wrote:
On Jan 25, 12:59 am, "Frank Millman" <[email protected]> wrote:> Hi all > Is defaultdict thread safe? Sometimes. It depends on whether an operation has callbacks to pure Python. > Assume I have - > from collections import defaultdict > my_dict = defaultdict(list) > If two threads call "my_dict['abc'].append(...)" simultaneously, is it > guaranteed that my_dict['abc'] will end up containing two elements? Yes. But, if the constructor is a user defined class, the pure python code runs for the instantiation and all bets are off. class A: def __init__(self): . . . my_dict = defaultdict(A) # not thread-safe. Raymond
Many thanks Frank -- http://mail.python.org/mailman/listinfo/python-list
