高并发
文章平均质量分 94
jaylixueji_csdn
这个作者很懒,什么都没留下…
展开
-
Sanic、uvloop及Asyncio的局限
如果追求性能,建议使用原生支持高并发和协程的语言,如:Golang、node.js等,代价就是切换技术栈,开发成本的增加。即便不开发 Sanic 服务,也可以使用 uvloop 来替换 asyncio 内部的事件循环。uvloop是Python原生事件循环的替代品,能提高了性能。这是用简单的echo服务做的测试,不能代表所有生产环境的情况。Python基于协程的异步是为了弥补GIL对多线程并发的限制。只要有一处同步就会阻塞整个线程及其中的所有协程。目前主要是很多库还是同步的。原创 2023-07-03 14:38:43 · 848 阅读 · 0 评论 -
网络io模型、同步异步及libuv
同步阻塞 IO 模型是最常用的一个模型,也是最简单的模型。在linux中,默认情况下所有的socket都是blocking。它符合人们最常见的思考逻辑。阻塞就是进程 “被” 休息,CPU处理其它进程去了。在这个IO模型中,用户空间的应用程序执行一个系统调用(recvform),这会导致应用程序阻塞,什么也不干,直到数据准备好,并且将数据从内核复制到用户进程,最后进程再处理数据,在等待数据到处理数据的两个阶段,整个进程都被阻塞。不能处理别的网络IO。原创 2023-06-27 15:46:50 · 346 阅读 · 0 评论