3. Group类,常用于不限制数量的管理异步任务的分组且可搜集运行结果
g = gevent.pool.Group(*args) -> Group
说明: 创建一个组对象,其实就是一个不限greenlets数量的pool,可以随时添加/删除/关闭greenlet对象
g.add(greenlet) -> None
说明: 向组中添加一个greenlet对象
g.discard(greenlet) -> None
说明: 从组中删除一个greenlet对象
g.join(timeout=None, raise_error=False) -> None
说明: 等待组中所有的greenlets都执行完毕再进行下一步
g.kill(exception=<class 'greenlet.GreenletExit'>, block=True, timeout=None) -> None
说明: 关闭组内所有运行中的greenlet对象
g.killone(self, greenlet, exception=<class 'greenlet.GreenletExit'>, block=True, timeout=None) -> None
说明: 关闭组内指定运行的greenlet对象
g.apply(self, func, args=None, kwds=None) -> obj
说明: 同apply单次调用func并返回运行结果
g.apply_async(self, func, args=None, kwds=None, callback=None) -> greenlet
说明: 同上但是返回的不是直接的运行结果而是异步对象greenlet,需要再次调用其.get()方法才能获取最终结果
g.imap(self, func, *iterables, **kwargs) -> IMap
g.imap_unordered(self, func, *iterables, **kwargs) -> IMapUnordered
g.map(self, func, iterable) -> list
g.map_async(self, func, iterable, callback=None) -> GreenletGroup
 
4. Pool类,常用于限制数量的管理异步任务,在受限于网络和IO的任务时候比较有优势
p =  gevent.pool.Pool(size=None, greenlet_class=None) -> Pool
说明: 创建一个协程池对象,可以指定其实协程数
p.add(greenlet) -> None
说明: 尝试向协程池中添加greenlet对象,阻塞直到有池中有协程完毕有剩余空间
p.free_count() -> int
说明: 返回池中剩余的空间,也就是可以add的greenlet数
p.full() -> boolean
说明: 返回池是否已满
p.start(greenlet) -> None
说明: 启动未启动的greenlet且将其加入pool监控
p.imap(self, func, *iterables, **kwargs) -> IMap
p.imap_unordered(self, func, *iterables, **kwargs) -> IMapUnordered
p.map(self, func, iterable) -> list
p.map_async(self, func, iterable, callback=None) -> GreenletGroup

gevent模块学习(三)的更多相关文章

  1. gevent模块学习(一)

    1.Event类,事件主要用于Greenlet之间的异步通信 e = gevent.event.Event() -> Event 说明: 创建一个信号对象 e.set() -> None ...

  2. Python3 学习第十弹: 模块学习三之数字处理

    math模块 提供基础的数学函数, cos(3.14) = -0.999..(弧度制) acos(1) = 0.0 sqrt(9) = 3.0 degrees(3.14) = 179.9999..(弧 ...

  3. gevent模块学习(四)

    gevent.spawn会对传入的子任务集合进行调度,gevent.joinall 方法会阻塞当前程序,除非所有的greenlet都执行完毕,才会退出程序 公有方法 gevent.spawn(cls, ...

  4. gevent模块学习(二)

    2. Queue类,常用用于Greenlet之间的异步共享 q = gevent.queue.Queue(maxsize=None, items=None) -> Queue 说明: 创建一个指 ...

  5. python模块学习(三)

    logging模块 简单应用 import logging  logging.debug('debug message')  logging.info('info message')  logging ...

  6. nodejs的mysql模块学习(三)数据库连接配置选项详解

    连接选项 当在创建数据连接的时候 第一种大多数人用的方法 let mysql = require('mysql'); let connection = mysql.createConnection({ ...

  7. Python urllib和urllib2模块学习(三)

    build_opener()详解: 1.urllib2.urlopen()函数不支持验证.cookie或者其它HTTP高级功能,要支持这些功能,必须使用build_opener()函数创建自定这句话的 ...

  8. 31、Python程序中的协程操作(greenlet\gevent模块)

    一.协程介绍 协程:是单线程下的并发,又称微线程,纤程.英文名Coroutine.一句话说明什么是协程:协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的. 对比操作系统控制线程的切换,用 ...

  9. Python学习 :常用模块(三)----- 日志记录

    常用模块(三) 七.logging模块 日志中包含的信息应有正常的程序访问日志,还可能有错误.警告等信息输出 python的 logging 模块提供了标准的日志接口,你可以通过它存储各种格式的日志, ...

随机推荐

  1. mysql 查询前几条数据

    limit是mysql的语法select * from table limit m,n其中m是指记录开始的index,从0开始,表示第一条记录n是指从第m+1条开始,取n条.select * from ...

  2. Linux防火墙iptables基础详解

    原文来自于:https://www.linuxidc.com/Linux/2017-01/140073.htm(引用自) 一:前言 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分 ...

  3. 【winform】serialPort 串口

    一. 1.串口通信简单实现 该来的总会来的,学做硬件的,串口这个东西必须得门清. 俗话说的好,不会做串口助手的电子工程师不是好程序员.

  4. centos6.5 MySQL数据库的安装

    <div id="home"><div id="header"> <div id="blogTitle"> ...

  5. mysql_study_3

    代码: CREATE DATABASE test_01; CREATE DATABASE mysql_shiyan; use mysql_shiyan; CREATE TABLE department ...

  6. telnet客户端操作memcached增删改查

    一,通过telnet连接进入memcached(telnet 本地ip/服务器ip 端口) 进入后回车看效果: 二, 添加数据和取出数据 添加命令: add     key名    0(固定)    ...

  7. Hadoop-Impala学习笔记之管理

    配置参数管理 待补充... 资源分配管理(Admission Control) Impala有资源池的概念,允许某些查询在特定的资源池执行,不过在白天不跑批/晚上不跑adhoc的DSS系统中,该机制并 ...

  8. Axure无法签出,团队配合时无法导入项目

    SVN管理项目,团队多人合作维护 在Axure签出时,报错. 提示:无法创建目录 ... 设备上没有空间 SVN也检出失败 当然,还有其他情况 如:未将对象引用设置到对象的实例.等等 个别提示如下图: ...

  9. oracle 增加大字段项

    --不同类型增加大字段项 alter table 表名 add 新增一个字段B clob; --将需要改成大字段的项内容copy到大字段中 update 表名 set 新增一个字段B=字段A; --将 ...

  10. Drools+springboot

    查看我的github, 后续会陆续补充文档和Drools技术 https://github.com/zongheng14/insurance-rules