gpt4 book ai didi

Python 多处理,代码继续执行?

转载 作者:太空宇宙 更新时间:2023-11-04 01:19:55 24 4
gpt4 key购买 nike

from multiprocessing import Process , Queue
from datetime import datetime

c = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]
out = Queue()
def support(m):
for k in m :
print "%s <-- hi" % k
out.put("done")

all = Queue()
temp = []
total = len(c)
count = 0
for m in c :
count += 1
total = total - 1
temp.append(m)
if count == 5 or total == 0 :
all.put(temp)
count = 0
temp = []

process_count = 3

while all.qsize() != 0 :
process_list = []
try :
for x in range(process_count) :
p = Process(target=support, args=(all.get(),))
process_list.append(p)

for p in process_list :
p.start()
for p in process_list :
p.join()
except Exception as e :
print e

while out.qsize != 0 :
print out.get()


print "all done"

我不知道为什么它不结束也不打印“全部完成”,只是一直在循环或继续执行。如果您可以使这段代码更有效率,将会有很大的帮助,但首先我想知道为什么它没有结束。

最佳答案

问题是:

while out.qsize != 0 :
print out.get()

out.qsize 是一个函数,所以现在您要将函数本身(不是返回值!)与 0 进行比较,当然总是 >错误

你应该使用:

while out.qsize() != 0 :
print out.get()

关于Python 多处理,代码继续执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21934792/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com