我写了两个程序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"时,项目将正确运行。