试图在函数内并行运行多个函数。当不在函数内时,代码执行良好。
from multiprocessing import Process
def main():
def test1():
print("test1")
def test2():
print("test2")
if __name__ == "__main__":
p1 = Process(target=test1)
p2 = Process(target=test2)
p1.start()
p2.start()
main()
获取
"AttributeError: Can't pickle local object 'main.<locals>.test1'"
在PyCharm中出现错误信息。在PyCharm之外,代码可以正常工作,我缺少什么?
好吧,我想出了答案,虽然它与我发布的问题不完全相同,我用类使它工作。它将为我做的工作。
from multiprocessing import Process
class Main:
def test1(self):
print("test1")
def test2(self):
print("test2")
mycl = Main()
if __name__ == "__main__":
p1 = Process(target=mycl.test1)
p2 = Process(target=mycl.test2)
p1.start()
p2.start()