#!/usr/bin/env python3 # -*- coding:utf-8 -*- # # _ooOoo_ # o8888888o # 88" . "88 # (| -_- |) # O\ = /O # ___/`---'\____ # . ' \\| |// `. # / \\||| : |||// \ # / _||||| -:- |||||- \ # | | \\\ - /// | | # | \_| ''\---/'' | | # \ .-\__ `-` ___/-. / # ___`. .' /--.--\ `. . __ # ."" '< `.___\_<|>_/___.' >'"". # | | : `- \`.;`\ _ /`;.`/ - ` : | | # \ \ `-. \_ __\ /__ _/ .-` / / # ======`-.____`-.___\_____/___.-`____.-'====== # `=---=' # ............................................. # 使°ï¼bugæ³æ»¥ï¼æå·²ç«çªï¼ # 'åå¸å¼è¿ç¨,使ç¨multiprocessing.manager模åè¿è¡å¤è¿ç¨éåç管ç' __author__ = 'click' __date__ = '2018/7/25 ä¸å1:55' import time, random, queue # 1.å¯¼å ¥BaseManager模å(管çQueue,注åãè·åãè¿æ¥master) from multiprocessing.managers import BaseManager # 2.å建ç产éåmaster masterQueue = queue.Queue() # 3.å建æ¶è´¹éå,worker workerQueue = queue.Queue() # 4.å建manager管çqueue class QueueManager(BaseManager): pass # 5.使ç¨baseManagerå°ä¸¤ä¸ªéåæ³¨åå°ç½ç»ä¸ QueueManager.register('get_master_queue', callable=lambda: masterQueue) QueueManager.register('get_worker_queue', callable=lambda: workerQueue) # 6.ç»å®ç½ç»ç«¯å£5000,设置éªè¯ç 'abc' manager = QueueManager(address=('', 5000), authkey=b'abc') # å¯å¨queue manager.start() # 7.è·åå°æ³¨åå°ç½ç»ä¸ççäº§ãæ¶è´¹éå master = manager.get_master_queue() worker = manager.get_worker_queue() # å¾ç产éå䏿·»å ä»»å¡ for i in range(10): n = random.randint(0, 10) print('å¾masteréå䏿·»å ä»»å¡ %s' % n) master.put(n) # åå¤ä»æ¶è´¹éåä¸ååº print('仿¶è´¹éåè·åå 容') for i in range(10): r = worker.get(timeout=10) print('æ¶è´¹éåworker%s' % r) # å ³émanger manager.shutdown()