利用协程实现共享list单线程异步并发

方式一:

import asyncio
import threading
async def add(no):
    print('当前线程为:%s' % threading.currentThread())
    await asyncio.sleep(1)
    all.append(no)
all = []
loop = asyncio.get_event_loop()
tasks = [ add(no) for no in range(20)]
loop.run_until_complete(asyncio.wait(tasks))
loop.close()

方式二:

import asyncio
import threading
@asyncio.coroutine
def add(no):
    print('当前线程为:%s' % threading.currentThread())
    yield from  asyncio.sleep(1)
    all.append(no)
all = []
loop = asyncio.get_event_loop()
tasks = [ add(no) for no in range(20)]
loop.run_until_complete(asyncio.wait(tasks))
loop.close()
运行结果:



猜你喜欢

转载自blog.csdn.net/qq_37050372/article/details/81035274