Discuss / Python / win10 运行

win10 运行

Topic source

--- 服务端 --- import random from multiprocessing.managers import BaseManager from queue import Queue

req = Queue() res = Queue()

class QueueManager(BaseManager): pass

def reqd(): return req

def resd(): return res

if name == 'main': QueueManager.register('get_req', reqd) QueueManager.register('get_res', resd) manager = QueueManager(address=('127.0.0.1', 5000), authkey=b'123')

manager.start()
req = manager.get_req()
res = manager.get_res()

for x in range(10):
    n = random.randint(0, 10000)
    print('request message {0}'.format(n))
    req.put(n)
print('request message')
for x in range(10):
    n = res.get(timeout=10)
    print('response message {0}'.format(n))
manager.shutdown()
print('end')

--- 客户端 --- import time from multiprocessing.managers import BaseManager

class QueueManager(BaseManager): pass

if name == 'main': QueueManager.register('get_req') QueueManager.register('get_res') manager = QueueManager(address=('127.0.0.1', 5000), authkey=b'123')

manager.connect()

req = manager.get_req()
res = manager.get_res()

for i in range(10):
    try:
        n = req.get(timeout=1)
        print('run task {0} * {0}'.format(n))
        r = '{0} * {0} = {1}'.format(n, (n * n))
        time.sleep(1)
        res.put(r)
    except:
        print('message is null')
print('end')

  • 1

Reply