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. Tableau 学习资料

    官方文档: https://www.tableau.com/zh-cn/support/help 其他教程: tablaue破解版_tableau10 破解_tableau server 破解:htt ...

  2. vue 异步刷新页面,

    入口文件vue.app中 <div id="app"> <router-view v-if="isRouterAlive" /> < ...

  3. C语言实例:类型转换

    数组转换成16进制数: #include <stdio.h> #include <stdlib.h> typedef unsigned char UINT8; typedef ...

  4. Java第一次实训课的作业

    1.圆的面积 2.加密数字 3.奇偶数

  5. 7步快速解决SQLServer数据库(2008版)重装问题

    最近遇到了鼠标双击启动不了数据库的问题,根据事件管理器和自己的最近的使用情况初步判断估计是自己在用360误伤了数据库(哭) 没有办法只好重新安装一下了,参考了网上的一些大神们的教程然后自己实战操作一下 ...

  6. 网易cetus数据库中间件安装-读写分离版本

    安装前提:1.数据库主从关系要做好:2.授权用户登录要做好:3.mysql最大连接数设置好,不然会报连接错误:4.版本最好是5.6以上. 1.安装依赖 yum install cmake gcc gl ...

  7. 解析JavaScript中的sort()排序方法以及原理

    Array.sort()方法将数组中的元素进行排序,返回排序后的数组,默认是按照升序排序的.sort方法会调用数组中每一项的toString()方法,然后按照ascii编码进行排序,如果数组含有und ...

  8. 如何在cisco官网上下载Cisco packet tracer模拟器

    这个是“思科网络技术学院”提供的一个软件,需要注册成为学员以后才能用,注册名字可以更改. 进入网站后,上面七个选项,cisco Networking Academy.课程(下边第七个选项“Packet ...

  9. mpvue小程序开发tips(1)

    wx.setStorageSync('vipId',vipId)-----存储   wx.getStorageSync('vipId')-------读取   wx.navigateTo({ url: ...

  10. LintCode 1.A+B的问题

    LintCode 1.A+B的问题 描述 给出两个整数 a 和 b , 求他们的和. 答案 public class Solution { /** * @param a: An integer * @ ...