python学习笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习笔记相关的知识,希望对你有一定的参考价值。

[异步IO]

对于IO操作阻塞,可以使用多线程/多进程,然而线程/进程数有限,切换开销大,效率低。

同步IO不好解决,可以用异步IO:IO操作时,发出IO指令,然后就去处理其他代码,一段时间后再返回。这样,一个线程可以同时处理多个IO且不用等待,对于IO密集(如WEB服务器)很适合。

 

[协程 Coroutine]

又称作微线程。可以在一个子程序中中断,去执行其他子程序。而且协程中不用锁机制,效率高。

于是获得最高效率就是:多进程+协程。充分利用多核。

 

[asyncio]

Python3.4的标准库,直接支持异步IO

asyncio编程模型就是消息循环,从模块中获取一个EventLoop的引用,把需要执行的协程扔到其中去执行,就实现了异步IO。

import asyncio

@asyncio.coroutine
def hello():
    print(hello world!)
    r=yield from asyncio.sleep(1)
    print(hello again!)

loop=asyncio.get_event_loop()
loop.run_until_complete(hello())
loop.close()

用asyncio提供的@asyncio.coroutine可以把一个generator标记为coroutin类型,然后在coroutine内部用yield from调用另一个coroutine实现异步操作。

 

以上是关于python学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

Python 3学习笔记

python 机器学习有用的代码片段

python爬虫学习笔记-M3U8流视频数据爬虫

[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段

python基础学习笔记(十三)

Python学习笔记之正则表达式