標籤:
提供服務部分(運行時在接收端未開啟前不能關閉)
1 #mainsec.py 2 from multiprocessing import Process, Queue 3 from multiprocessing.managers import BaseManager 4 class Worker(Process): 5 def __init__(self, q): 6 self.q = q 7 super(Worker, self).__init__() 8 def run(self): 9 self.q.put(‘local hello‘)10 if __name__ == ‘__main__‘:11 queue = Queue()12 w = Worker(queue)13 w.start()14 class QueueManager(BaseManager): pass15 16 QueueManager.register(‘get_queue‘, callable=lambda: queue)17 m = QueueManager(address=(‘127.0.0.1‘, 50000), authkey=‘abc‘)18 s = m.get_server()19 s.serve_forever()
接收方(接收):
1 #subthir.py2 from multiprocessing.managers import BaseManager3 class QueueManager(BaseManager): pass4 QueueManager.register(‘get_queue‘)5 m = QueueManager(address=(‘127.0.0.1‘, 50000), authkey=‘abc‘)6 m.connect()7 queue = m.get_queue()8 print m.address9 print queue.get()
結果:
1 (‘127.0.0.1‘, 50000)
2 local hello
python中的BaseManager通訊(二)檔案二分