一 协程 协程,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程。 协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。因此: 协程能保留上一次调用时的状态(即所有局部状态的一 ...
分类:
编程语言 时间:
2019-07-30 17:25:01
阅读次数:
111
原文:https://www.liaoxuefeng.com/wiki/897692888725344/966405998508320 Python通过yield提供了对协程的基本支持,但是不完全。而第三方的gevent为Python提供了比较完善的协程支持。 gevent是第三方库,通过green ...
分类:
其他好文 时间:
2019-07-29 00:11:11
阅读次数:
122
基于协程池 实现并发的套接字通信 客户端: 服务端: ...
分类:
编程语言 时间:
2019-07-27 22:27:26
阅读次数:
326
之前线程池是通过操作系统切换线程,现在是程序自己控制,比操作系统切换效率要高 服务端 客户端给服务端发送500个并发量,会看到一直不停的收消息 ...
分类:
编程语言 时间:
2019-07-27 18:31:58
阅读次数:
121
两个学习gevent的网址: [1] http://www.gevent.org/intro.html [2] https://sdiehl.github.io/gevent-tutorial/ ...
分类:
编程语言 时间:
2019-07-25 00:04:07
阅读次数:
117
gunicorn 安装 gunicorn_demo.py gunicorn 详细配置 gunicorn配置项可以通过gunicorn的启动命令行中设定,也可以通过配置文件指定。强烈建议使用一个配置文件。 配置项如下: server socket bind 监听地址和端口。 backlog 服务器中在 ...
分类:
编程语言 时间:
2019-07-22 18:08:13
阅读次数:
284
monkey patch 一般指运行时候进行动态替换. 基本上我们使用gevent,会在最开头的地方加入 ;把标准库中的 等给替换掉.这样我们在后面使用socket的时候它会变成非阻塞的了.而我们却什么也不用做. 一个案列 最快访问结束的会在第一位,最慢的会在最后一位. 输出结果: ...
分类:
编程语言 时间:
2019-07-16 08:42:28
阅读次数:
105
在windows中报 No module named 'luffyapi'或者 No module named 'mycelery'的错误 先下载模块gevent windows中 启动 celery -A mycelery.main worker --loglevel=info -P gevent ...
实现gevent模块 服务端: from socket import * import time s = socket() s.bind(('127.0.0.1',8080)) s.listen(5) s.setblocking(False) r_list=[] w_list=[] while Tr ...
分类:
编程语言 时间:
2019-07-14 18:03:09
阅读次数:
105
一 gevent模块 gevent应用场景: 单线程下,多个任务,io密集型程序 安装 Gevent 是一个第三方库,可以轻松通过gevent实现并发同步或异步编程,在gevent中用到的主要模式是Greenlet, 它是以C扩展模块形式接入Python的轻量级协程。 Greenlet全部运行在主程 ...
分类:
编程语言 时间:
2019-07-12 23:38:47
阅读次数:
246