python中异步非阻塞如何实现
说明
1、当一个异步过程调用发出后,调用者不会立刻得到结果。
实际处理这个调用的部件是在调用发出后,通过状态、通知来通知调用者,或通过回调函数处理这个调用。
2、非阻塞的意思是,不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。
实例
fromtimeimporttime,sleep """ 同步操作 """ defapp01(): deffn1(): sleep(3) print("fn1...") deffn2(): sleep(2) print("fn2...") deffn3(): sleep(5) print("fn3...") fn1() fn2() fn3() """ asyncio """ defapp02(): importasyncio asyncdeffn1(): awaitasyncio.sleep(3) print("fn1...") asyncdeffn2(): awaitasyncio.sleep(2) print("fn2...") asyncdeffn3(): awaitasyncio.sleep(5) print("fn3...") loop=asyncio.get_event_loop() tasks=[ fn1(), fn2(), fn3() ] loop.run_until_complete(asyncio.wait(tasks)) loop.close() if__name__=='__main__': startTime=time() #app01() app02() endTime=time() print('花费了',str(endTime-startTime),'秒') #第一个10s #第二个5s
以上就是python中异步非阻塞的实现,希望对大家有所帮助。更多python学习指路:python基础教程
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。