Многопроцензирование Python. Красиво не воспроизводится с Threading.local?

У меня есть два процесса (см. Пример код), что каждая попытка получить доступ к объекту Threading.local. Я бы ожидал, что код ниже печати «A» и «B» (в любом порядке). Вместо этого я получаю «А» и «А». Как я могу элегантно и надежно сбросить объект Threading.local, когда я запускаю все новые процессы?

import threading
import multiprocessing
l = threading.local()
l.x = 'a'
def f():
    print getattr(l, 'x', 'b')
multiprocessing.Process(target=f).start()
f()

Редактировать: для справки, когда я использую Threading.Thread вместо мультипроценции.

10
задан dave mankoff 2 September 2011 в 15:14
поделиться