【文件属性】:
文件名称:pglet:multiprocessing & greenlet spawn (多进程+协程的spawn)
文件大小:9KB
文件格式:ZIP
更新时间:2021-07-05 10:06:13
Python
gevent进程协程池
使用场景
代替不跨服务器、不跨语言的RPC使用, 可以利用多核
在gevent程序中执行cpu绑定型函数, 不会阻塞主进程的协程
注意事项
仅在*nix系统运行很好
子进程会复制主进程的进程空间, 所以要在合适的时候调用PPool实例的init函数
必须手动调用PPool实例的close函数来关闭pipe、子进程和循环协程
如果使用spawn,请必须调用 返回值.get,否则请使用 spawn_sub
使用
spawn: 返回future对象,函数必须是复制到子进程的,参数和返回值必须能够pickle序列化
spawn_sub: 不返回值,函数必须是复制到子进程的,参数必须能够pickle序列化
benchmark:
因为没有实现join方法,所以测试数据是debug时期内嵌在源码中,然后被删除了
1w个本地http get(urllib2)
普通协程: 8
【文件预览】:
pglet-master
----setup.py(705B)
----.gitignore(675B)
----requirements.txt(4B)
----TODO(229B)
----LICENSE(1KB)
----README.md(2KB)
----tests()
--------test_dictqueue.py(1KB)
--------__init__.py(23B)
--------test_pglet.py(983B)
----pglet()
--------__init__.py(114B)
--------pglet.py(6KB)
--------dictqueue.py(2KB)
----benchmarks()
--------benchmark.py-DONTUSE(398B)
--------benchmark_greenlet-DONTUSE(353B)