python 多进程使用Queue通信的例子,pythonqueue,如下代码:import


如下代码:

import timefrom multiprocessing import Process,QueueMSG_QUEUE = Queue(5)def startA(msgQueue):    while True:        if msgQueue.empty() > 0:            print 'queue is empty %d' % (msgQueue.qsize())        else:            msg = msgQueue.get()            print 'get msg %s' % (msg,)        time.sleep(1)def startB(msgQueue):    while True:        msgQueue.put('hello world')        print 'put hello world queue size is %d' % (msgQueue.qsize(),)        time.sleep(3)if __name__ == '__main__':    processA = Process(target=startA,args=(MSG_QUEUE,))    processB = Process(target=startB,args=(MSG_QUEUE,))    processA.start()    print 'processA start..'    processB.start()    print 'processB start..'

主进程定义了一个Queue类型的变量,并作为Process的args参数传给子进程processA和processB,两个进程一个向队列中写数据,一个读数据。

其打印的结果如下:

C:\Python27\python.exe E:/outofmemory/test/queuetest/queuetest.pyprocessA start..processB start..queue is empty 0put hello world queue size is 1get msg hello worldqueue is empty 0queue is empty 0put hello world queue size is 1get msg hello worldqueue is empty 0queue is empty 0put hello world queue size is 1

评论关闭