【发布时间】:2021-12-27 07:09:36
【问题描述】:
我是队列和线程的新手,请帮助下面的代码,这里我正在尝试执行函数 hd,我需要多次运行该函数,但只有在一次运行之后完成
import queue
import threading
import time
fifo_queue = queue.Queue()
def hd():
print("hi")
time.sleep(1)
print("done")
for i in range(3):
cc = threading.Thread(target=hd)
fifo_queue.put(cc)
cc.start()
电流输出
hi
hi
hi
donedonedone
预期输出
hi
done
hi
done
hi
done
【问题讨论】:
-
“我需要多次运行该函数,但只能在一次运行完成后” 这不是违背了并行处理的目的吗?看起来您可能想要一个简单的循环?
-
您需要 mutex lock 检查 this 以获取示例用法。
-
感谢 mozway 是的,我知道常规 for 循环将在这种情况下工作,只是徘徊我如何与 Queue 一起使用,所以以后如果需要我可以将它与复杂功能一起使用
标签: python python-3.x multithreading