摘要: asyncio可以实现单线程并发IO操作。如果仅用在客户端,发挥的威力不大。如果把asyncio用在服务器端,例如Web服务器,由于HTTP连接就是IO操作,因此可以用单线程+coroutine实现多用户的高并发支持。 asyncio实现了TCP、UDP、SSL等协议,aiohttp则是基于asyn 阅读全文
posted @ 2017-08-18 16:37 追梦的独行者 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 用asyncio提供的@asyncio.coroutine可以把一个generator标记为coroutine类型,然后在coroutine内部用yield from调用另一个coroutine实现异步操作。 为了简化并更好地标识异步IO,从Python 3.5开始引入了新的语法async和awai 阅读全文
posted @ 2017-08-18 16:32 追梦的独行者 阅读(136) 评论(0) 推荐(0) 编辑
摘要: asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持。 asyncio的编程模型就是一个消息循环。我们从asyncio模块中直接获取一个EventLoop的引用,然后把需要执行的协程扔到EventLoop中执行,就实现了异步IO。 用asyncio实现Hello worl 阅读全文
posted @ 2017-08-18 16:31 追梦的独行者 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 协程,又称微线程,纤程。英文名Coroutine。 协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广泛应用。 子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B,B在执行过程中又调用了C,C执行完毕返回,B执行完毕返回,最后是A执行完毕。 所以子程序调用是通过栈实现 阅读全文
posted @ 2017-08-18 15:49 追梦的独行者 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 在IO编程一节中,我们已经知道,CPU的速度远远快于磁盘、网络等IO。在一个线程中,CPU执行代码的速度极快,然而,一旦遇到IO操作,如读写文件、发送网络数据时,就需要等待IO操作完成,才能继续进行下一步操作。这种情况称为同步IO。 在IO操作的过程中,当前线程被挂起,而其他需要CPU执行的代码就无 阅读全文
posted @ 2017-08-18 15:38 追梦的独行者 阅读(134) 评论(0) 推荐(0) 编辑