pglet 多进程与协程的spawn应用指南
gevent进程协程池使用场景:适用于不跨服务器、不跨语言的RPC场景,能够充分利用多核性能在gevent程序中执行CPU绑定型函数,而不会阻塞主进程的协程。注意事项:
-
适用系统:仅在*nix系统上运行效果良好。
-
子进程复制进程空间:子进程会复制主进程的进程空间,因此需在合适时调用
PPool
实例的init
函数。 -
手动关闭:务必手动调用
PPool
实例的close
函数来关闭pipe、子进程和循环协程。
spawn与spawn_sub的差异:
-
使用
spawn
:返回一个future
对象,函数必须可在子进程中复制,参数和返回值需支持pickle
序列化。 -
使用
spawn_sub
:不返回值,函数同样需可在子进程中复制,参数必须支持pickle
序列化。
benchmark:因未实现join
方法,测试数据在调试阶段内嵌于源码并在发布前删除。以下为性能测试结果:1万个本地HTTP GET (使用urllib2
)普通协程请求:8。
下载地址
用户评论