我试图对需要共享数组的任务使用多处理,当我在使用 multiprocessing.Array() 之后遇到此错误时: name 'list2_array' 未定义
这是复制它的简化方法:
from multiprocessing import Pool, Array
from ctypes import c_char
def func(num):
if num in list2_array:
return num
else:
return num + b"Not Found"
if __name__ == "__main__":
my_list = [b"1", b"2", b"4", b"8"]
list2 = [b"1", b"4"]
with Pool() as pool:
list2_array = Array(c_char, list2)
results = pool.map(func, my_list)
print(results)
在示例中,我尝试使用多处理打印 my_list 和 list2 中的所有元素,预期结果是:
[b'1', b'2 Not Found', b'4', b'8 Not Found']
但是引发了 NameError。
提前致谢!