不能调用具有多个进程的程序.Python



我写了两个程序test.py和testb.py,testb.py将调用test.py中包含的test2函数。但test2没有运行。为什么?testa.py:

from multiprocessing import Process, Queue
def test01():
print("hello this is a test functionn")
def test2():
print("hello this is test2 funcn")
q = Queue(1)
processess=[]
for i in range(5):
pr = Process(target=test01,args=(q))
pr.start()
processess.append(pr)

try:
end = 0;
while end!=5:
item = q.get()
end+=1
yield item
finally:
for p in processess:
if p.is_alive():
p.terminate()
p.join()
q.close()
if __name__=='__main__':
test01() 

Testb.py:

from testa import test01, test2
def main():
print("hellon")
test2()
if __name__=='__main__':
main()

我会得到这个输出

(base) D:code_areapythonTEST>python testb.py 
hello
(base) D:code_areapythonTEST>

test2函数似乎根本没有运行。

我想我知道问题出在哪里了。当我注释"yield item"时,项目将正确运行。

相关内容

  • 没有找到相关文章

最新更新