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

代码如下:
from multiprocessing import Manager, Pool

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

def num2():
global num
while True:
if not q.empty():
result = q.get()
if result is None:
break
else:
print(result)
print(1111111111111)

if name == '__main__':
num = 0
q = Manager().Queue()
p = Pool(5)
for i in range(1):
p.apply_async(num1)
for i in range(3):
p.apply_async(num2)
p.close()
p.join()
图片说明
while True循环退出了,但是进程没有退出。

p.join() 这个本来就不是进程退出的方法,只是进程阻塞了的