# encoding: utf-8 __author__ = 'zhanghe' import random import time import Queue from multiprocessing.managers import BaseManager # åéä»»å¡çéå: task_queue = Queue.Queue() # æ¥æ¶ç»æçéå: result_queue = Queue.Queue() # ä»BaseManagerç»§æ¿çQueueManager: class QueueManager(BaseManager): pass # æä¸¤ä¸ªQueue齿³¨åå°ç½ç»ä¸, callableåæ°å ³èäºQueue对象: QueueManager.register('get_task_queue', callable=lambda: task_queue) QueueManager.register('get_result_queue', callable=lambda: result_queue) # ç»å®ç«¯å£5000, 设置éªè¯ç 'abc': manager = QueueManager(address=('', 5000), authkey='abc') # å¯å¨Queue: manager.start() # è·å¾éè¿ç½ç»è®¿é®çQueue对象: task = manager.get_task_queue() result = manager.get_result_queue() # æ¾å 个任å¡è¿å»: for i in range(10): n = random.randint(0, 10000) print('Put task %d...' % n) task.put(n) # ä»resultéå读åç»æ: print('Try get results...') # for i in range(10): while True: try: r = result.get(timeout=2) print('Result: %s' % r) except Queue.Empty: # 2Så åä¸å°ç»æï¼è¿åç»æéå为空æç¤º print('result queue is empty.') # å ³é: manager.shutdown()