最近同事写的多进程消息队列性能很低。
我复习下协程
def consumer():
r = ''
while True:
n = yield r
if not n: return # 协程返回空,返回
print('[CONSUMER] Consuming %s...' % n)
r = '200 OK'
def produce(c):
for n in range(5):
print('[PRODUCER] Producing %s...' % n)
n = None if n ==0 else n # 初次开启协程必须send(None)
r = c.send(n)
print('[PRODUCER] Consumer return: %s' % r)
c.close()
c = consumer()
produce(c)
消息栈
[PRODUCER] Producing 0...
[PRODUCER] Consumer return: # 用于开启
[PRODUCER] Producing 1...
[CONSUMER] Consuming 1...
[PRODUCER] Consumer return: 200 OK
[PRODUCER] Producing 2...
[CONSUMER] Consuming 2...
[PRODUCER] Consumer return: 200 OK
[PRODUCER] Producing 3...
[CONSUMER] Consuming 3...
[PRODUCER] Consumer return: 200 OK
[PRODUCER] Producing 4...
[CONSUMER] Consuming 4...
[PRODUCER] Consumer return: 200 OK
代码参考了廖雪峰网站