Python 多处理共享列表未写入

时间:2021-05-03 04:25:41

标签: python multithreading list

我有一个具有属性列表的类。类中有一些函数可以写入但从未从该列表中读取。我用一个列表初始化类并从多个线程调用函数,但是在等待所有线程完成后,列表仍然为空。

列表中的值顺序无关紧要。

from multiprocessing import Process

class TestClass():

    def __init__(self, vals):
        self.vals = vals
        
    def linearrun(self):
        Is = range(2000)
        Js = range(2000)
        
        for i in Is:
            for j in Js:
                self.vals.append(i+j)

if __name__ == "__main__":
    vals = []
    instantiated_class = TestClass(vals)
    processes = []

    for _ in range(10):
        new_process=Process(target=instantiated_class.linearrun)
        processes.append(new_process)
        new_process.start()
    
    for p in processes:
        p.join()

    print(vals)

0 个答案:

没有答案