我正在启动3个进程,我希望它们在与进程(i)对应的索引处将字符串放入共享数组中.
看下面的代码,生成的输出是:
['test 0', None, None]
['test 1', 'test 1', None]
['test 2', 'test 2', 'test 2']
为什么’测试0’被测试1覆盖,测试1被测试2覆盖?
我想要的是(顺序并不重要):
['test 0', None, None]
['test 0', 'test 1', None]
['test 0', 'test 1', 'test 2']
代码 :
#!/usr/bin/env python
import multiprocessing
from multiprocessing import Value, Lock, Process, Array
import ctypes
from ctypes import c_int, c_char_p
class Consumer(multiprocessing.Process):
def __init__(self, task_queue, result_queue, arr, lock):
multiprocessing.Process.__init__(self)
self.task_queue = task_queue
self.result_queue = result_queue
self.arr = arr
sel