【发布时间】:2015-11-02 23:48:57
【问题描述】:
我试图让一个线程将项目添加到队列中,并让主线程将它们拉出。我正在尝试的方法在阅读多处理文档后不起作用。我究竟做错了什么?谢谢。
import time
from multiprocessing import Process, Queue
def append_to_queue(q, t=1):
n = 0
while True:
q.put(n)
n += 1
time.sleep(t)
def print_queue(q, t=0.5):
while True:
print q.get()
time.sleep(t)
def main(t1, t2, delay=1):
q = Queue()
p = Process(target=append_to_queue, args=(q, t1,))
p.start()
time.sleep(delay)
print_queue(q, t2)
p.join()
main(1, 0.5, delay=1)
【问题讨论】:
-
您的代码对我有用,因为它每秒打印出一个递增的数字。你是什么意思它不起作用?
-
有趣的是,我第一次尝试在编写脚本之前在 ipython 中写出东西,它咬了我,tl;dr,我在 windows 上工作,你需要在 windows 上编写多处理。 freeze_support() 在模块级别。
-
骑自行车时如何摆脱困境?
标签: python windows queue multiprocessing python-multiprocessing