如何在 python 中使用yield 实现 asyncio的效果?(二)
摘要:上一篇说的是,通过yield 和 send 关键字,在需要的时候,指定代码的执行顺序,要实现asyncio的类似效果,我们还需要解决两个问题: 一个是在需要的时候,让出cpu,这里说的让出cpu,是指不让cpu将时间花费在等待io上, 而是去执行其他代码段。 另一个是,保证io准备好时,可以回到之前
阅读全文
如何在 python 中使用yield 实现 asyncio的效果?(一)
摘要:关键技术一:yield, next, send, throw 要想实现异步的效果,我们需要在 必要 的时候,来控制cpu执行我们想让它执行的代码,比如,在发生io等待时,我们需要让cpu去执行其他代码,等到io完成时,再继续执行刚才的代码,这个的实现(控制代码执行顺序)就要用到 yield,next
阅读全文
为什么有的时候服务重启时,会碰到 Port already in use? 简单了解4次挥手时的time wait
摘要:有的时候我们在调试服务时,当简单修改完代码,重启时,会碰到 Port already in use 的问题,过一会就好,这是什么原因呢? 先看一下四次挥手过程 如上图的time wait过程, 虽然我们已经关掉了服务器,但是,如果恰好有连接存在,服务端会发起关闭连接的过程,所以会有一个 time w
阅读全文
如何将 sqlalchemy 的过滤条件参数化?
摘要:过滤条件参数化,就是公用方法中,不再指定具体的参数,类似python 中的 **kwargs传参方式,当然具体每个接口的过滤条件还是要在接口逻辑中控制的,只是不在公用方法中指定。 1. sqlalchemy 中的filter 和 filter_by 的区别 filter_by 接收的是k=v形式的参
阅读全文
一台linux服务器最多支持多少个tcp连接?
摘要:经常说的65535是什么限制? 在Linux中端口号的数据类型是unsigned short,2字节,16位,2**16 = 65536,而端口号0作为系统保留端口,一般用来做动态生成端口,剩下65535 所以,所以65535是指一台服务器可打开的最大端口数。 一台服务器最多支持多少个TCP连接?
阅读全文