首页新闻找找看学习计划

python多进程不退出问题怎么解决

0
悬赏园豆:20 [待解决问题]

代码如下:
import multiprocessing, time
from multiprocessing import Manager, Pool

def num1():
global num
for i in range(1000):
num += 1
q.put(num, False)
print('====num=====', num)
print('======', q.qsize())

def num2():
global num

while True:
    print(q.empty())
    time.sleep(0.0001)
    if not q.empty():
        result = q.get()
        print(result)
    else:
        break

if name == 'main':
num = 0
q = Manager().Queue()
p = Pool(5)
for i in range(5):
p.apply_async(num1)
for i in range(3):
p.apply_async(num2)
p.close()
p.join()
偶尔会出现进程不退出的情况,如下图怎么解决???

奈何技术不达标的主页 奈何技术不达标 | 初学一级 | 园豆:146
提问于:2019-12-12 14:22
< >
分享
所有回答(1)
0

外层循环再写一个close()试试,我看你好像是只关闭内层循环的进程了

老王同鞋 | 园豆:208 (菜鸟二级) | 2019-12-13 00:47

您好,我刚才看了我这个代码,我打印了下while True这个循环已经退出来了,但是不知道进程怎么不退出啊

支持(0) 反对(0) 奈何技术不达标 | 园豆:146 (初学一级) | 2019-12-13 09:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册