У меня есть два процесса (см. Пример код), что каждая попытка получить доступ к объекту 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 вместо мультипроценции.