У меня нет большого опыта работы с многопоточностью, и я пытаюсь получить что-то вроде ниже работы:Как обмениваться деревом объектов с вилкой процесса?
from multiprocessing import Process
class Node:
def __init__(self):
self.children = {}
class Test(Process):
def __init__(self, tree):
super().__init__()
self.tree = tree
def run(self):
# infinite loop which does stuff to the tree
self.tree.children[1] = Node()
self.tree.children[2] = Node()
x = Node()
t = Test(x)
t.start()
print(x.children) # random access to tree
Я понимаю, что это не должно (и не) работать на различных очень разумные причины, но я не уверен, как это получить до работы. Ссылаясь на документацию, мне кажется, что мне нужно что-то делать с менеджерами и прокси, но я честно понятия не имею, с чего начать, или действительно ли это то, что я ищу. Может ли кто-нибудь представить пример выше, который работает?
Вы хотите многопоточность (один процесс, несколько потоков, общее адресное пространство) или многопроцессорность (несколько процессов, без общего адресного пространства)? Какова проблема более высокого уровня, которую вы хотите решить? –
Я хочу многопоточность, но обходя проблему PILON GIL. Может быть, я прошу слишком много ... – darkfeline