Python 多处理是否创建类的副本?

Python 多处理是否创建类的副本?,python,object,multiprocessing,Python,Object,Multiprocessing,我在Python中使用多处理来运行许多任务 我是这样做的: tasks = multiprocessing.JoinableQueue() results = multiprocessing.Queue() # Start consumers num_consumers = multiprocessing.cpu_count() * 2 consumers = [ Consumer(tasks, results) for _ in rang

我在Python中使用多处理来运行许多任务

我是这样做的:

    tasks = multiprocessing.JoinableQueue()
    results = multiprocessing.Queue()      

    # Start consumers

    num_consumers = multiprocessing.cpu_count() * 2
    consumers = [ Consumer(tasks, results) for _ in range(num_consumers) ]  

    for w in consumers:
        w.start()
然后我有一个属性“Colony”,它有一个蚂蚁列表,所有蚂蚁都在
\uuuu init\uuuu

        for ant in self.colony.ants:
            tasks.put(ant)
            num_tasks += 1
问题是,当我运行所有任务时(即方法
\uuuu call\uuu
),每个ant都会被调用。 我返回
self
并在比较时:

        # We wait now for all the ants to finish 
        tasks.join() 
        results_list = list()

        for _ in range(num_tasks):
            results_list.append(results.get())

        print (id(results_list[0]),results_list[0].id)
        print(id(self.colony.ants[0]),self.colony.ants[0].id)
我得到

所以它是同一只蚂蚁,但在消费者调用它之后,它会创建自己的副本?还是我遗漏了什么。 ant不会在其他任何地方实例化


提前感谢

排队
pickles和unpickles对象。所以,是的,复制品被制作出来了。如果希望对象保持相同的id,则需要将其放入共享内存Uops中。。我应该先提到那里。无论如何,非常感谢!
(33524112, 0)
(33005072, 0)