编者自语
优势和劣势这是我自己经验瞎说,日后校验
异步的劣势
1 异步实现并发的好处那是没的说的但是异步并发编程并不是那么简单和容易,需要 清楚的知道什么地方用异步等,一个函数中可能还有很多地方用到异步,用到异步的时候注意,一旦函数变成异步就不是普通函数,不能像普通函数那样调用了,必须放在特定的异步循环机制中,注册进去,或者所谓的驱动函数才可以。下面使用代码来进行说明
import asyncio
import time
now = lambda: time.time()
async def do_some_work(x):
print('Waiting: ', x)
await asyncio.sleep(x)
return 'Done after {}s'.format(x)
start = now()
coroutine = do_some_work(2)
loop = asyncio.get_event_loop()
task = asyncio.ensure_future(coroutine)
loop.run_until_complete(task)
print('Task ret: ', task.result())
print('TIME: ', now() - start)
# 运行结果
# Waiting: 2
# Task ret: Done after 2s
# TIME: 2.0012385845184326
上面这是使用异步调用的可以正常使用下面演示
import asyncio
import time
now = lambda: time.time()
async def do_some_work(x):
print('Waiting: ', x)
await asyncio.sleep(x)
return 'Done after {}s'.format(x)
start = now()
if __name__ ==