pyefun.模块.协程池 module

提示

asyncio 实现的协程池 asyncio为python原生支持

调用时需要引入

import asyncio

还有另外一个版本的实现 协程池Gevent 为 Gevent实现协程

class pyefun.模块.协程池.协程池(协程数量=1, 投递任务时阻塞=True, 线程池数量=None, loop=None)[源代码]

基类:object

  1. 支持动态添加任务

  2. 支持停止事件循环

  3. 支持最大协程数:maxsize

  4. 支持进度条

  5. 实时获取剩余协程数

  6. 支持阻塞协程,需要线程进行支持,注意设置线程池:pool_maxsize

async async_semaphore_func(func)[源代码]

信号代理 :param func: :return:

async async_thread_pool_func(block_func, *args, thread_pool=True)[源代码]

信号代理 线程池代理

loop: asyncio.AbstractEventLoop

参数
  • block_func – 阻塞任务

  • args – 参数

  • thread_pool – 是否使用自定义线程池

返回

get_task()[源代码]

获取事件循环任务列表 :return:

property running

获取剩余协程数 :return:

start_loop(loop, pool_maxsize=None)[源代码]

运行事件循环 开启新线程 :param loop: 协程 :param pool_maxsize: 线程池大小,默认为系统内核数 :return:

stop_loop(loop_time=1)[源代码]

队列为空,则关闭线程 :param loop_time: :return:

task_add(item=1)[源代码]

添加任务 :param item: :return:

static task_create()[源代码]

创建任务对象

:param :return:

task_done(fn)[源代码]

任务完成 回调函数 已完成任务计数

参数

fn

返回

task_progress(total)[源代码]

任务进度条 适用于已知任务总数的情况

参数

total – 任务总数

返回

投递任务(func, *args, **kwds)[源代码]

非阻塞模式 提交任务到事件循环

参数
  • func – 异步函数对象

  • args – 参数

  • callback – 回调函数

返回

投递任务2(func, *args)[源代码]

阻塞模式 提交任务到事件循环

参数
  • func – 异步函数对象

  • args – 入参

  • callback – 回调函数

返回

等待()[源代码]

任务阻塞 等待所有任务执行完毕

返回

设置任务结束回调函数(future, 回调函数)[源代码]

投递任务返回的对象

def 回调函数(线程返回的结果):

print(“当前线程”, current_thread().name) print(“线程返回的结果”, future.result())

释放线程(loop_time=1)[源代码]
参数

loop_time

返回