def reader(
q)
:
print(
"reader启动(%s),父进程为(%s)" % (os.getpid()
, os.getppid()))
for i
in range(
q.qsize())
: #qsize() 返回进程池的任务数量
print(
"reader从Queue获取到消息:%s" % q.get(
True))
def writer(
q)
:
print(
"writer启动(%s),父进程为(%s)" % (os.getpid()
, os.getppid()))
for i
in "itcast":
q.put(i)
if __name__
=="__main__":
print(
"(%s) start" % os.getpid())
q
= Manager().Queue()
# 使用Manager中的Queue
# q = Queue()
po
= Pool()
po.apply_async(writer
, (q
,))
time.sleep(
1)
# 先让上面的任务向Queue存入数据,然后再让下面的任务开始从中取数据
po.apply_async(reader
, (q
,))
po.close()
po.join()
print(
"(%s) End" % os.getpid())
转载请注明原文地址: https://www.6miu.com/read-2624149.html