在Python中使用Queue的异步数据 - 为什么不工作?

时间:2013-05-28 08:57:05

标签: python time queue multiprocessing

测试两个函数之间的数据流,多处理和队列我已经制作了以下小脚本(没有连接,只是为了理解目的的测试):

from multiprocessing import Process, Queue
import time


def f1(q):
    i = 0
    while True:
        i+=1       
        q.put(i)
        # time.sleep(1)    

def f2(q):
    while True:
        dummy = q.get()     
        print (dummy)
        # time.sleep(1)



if __name__ == '__main__':
    q = Queue()
    p1 = Process(target=f1, args=(q,))
    p2 = Process(target=f2, args=(q,))

    p1.start()
    p2.start()

所以f1(worker)永久流入队列,f2(worker)读取它。但是当我引入一个ie time.sleep(1)进行异步通信时,没有任何反应。 有人可以解释为什么会这样吗?我猜我有某种理解问题。

感谢任何帮助。

问候 弗兰克

0 个答案:

没有答案