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. Go语言文件操作

    打开和关闭文件 os.Open()函数能够打开一个文件,返回一个*File和一个err. file.close()方法能够关闭文件. //打开和关闭文件 func main() { file,err ...

  2. java线程学习之synchronized关键字

    关键字synchronized的作用是实现线程间的同步.它的任务是对同步的代码加锁.一个代码块同时只能有同一个线程进行读和写操作,从而保证线程间是安全的. 线程安全的概念是:当多个线程访问某一个类(对 ...

  3. MTK 使用iptable 命令来完成网络路由(android WIFI/4G分享网络)

    很多时候,总有些奇怪的需求,这时候是发挥我们的聪明才智的时候!! 有客户的需求是: 公网 WIFI 4G/其他网络 以太网1 以太网2 内部设备 描述下需求:现今有一个控制设备,里面有WIFI,物联网 ...

  4. Got error -1 from storage engine

    有个小朋友修复从库,但是start slave 后,报错信息如下 Could not execute Write_rows event on table hsfdssdb.mf_textannounc ...

  5. nginx cookie 会话保持功能

    sticky 会话保持,基于自定义cookie 进行会话保持的方式 安装包下载地址:https://github.com/bymaximus/nginx-sticky-module-ng ./conf ...

  6. algs4 使用 DrJava 编写 Hello World on Windows

    前阶段读了 Yinwang 的博客, 对 Scheme and Lisp 产生了很大的兴趣, 用 学生模式的  DrRacket IDE一步一步开始实现 How to Design Programs. ...

  7. replace用法替换实例

    实例一: 待处理字符串:str="display=test name=mu display=temp" 要求:把display=后的值都改成localhost JS处理方法: st ...

  8. 关于html中的 script标签中的 代码写法有效性? easyui tabs的href不能载入内容页面

    script标签, 即 html中的 js脚本区域中: 它其实就是一个 普通的 html标签, 在 html 渲染器 parser 看来, 它跟其他任何的普通 的 html标签 , 比如 p 标签, ...

  9. ValueObject

    ValueObject When programming, I often find it's useful to represent things as a compound混合物. A 2D co ...

  10. sqllite中实现字符串分割

    WITH split(word, str) AS (    -- alternatively put your query here    -- SELECT '', category||',' FR ...