shap threadpoolexecutor,实现java的keepAliveTime,有界工作队列,线程错误的直接显示

threadpool-executor-shrink-able的Python项目详细描述


pip install threadpool_executor_shrink_able

史上最强的python线程池。

最智能的可自动实时调节线程数量的线程池。此线程池和官方concurrent.futures的线程池 是鸭子类关系,所以可以一键替换类名 或者 import as来替换类名。 对比官方线程池,有4个创新功能或改进。

1、主要是不仅能扩大,还可自动缩小(官方内置的ThreadpoolExecutor不具备此功能,此概念是什么意思和目的,可以百度java ThreadpoolExecutor的KeepAliveTime参数的介绍),

2、非常节制的开启多线程,例如实例化一个最大100线程数目的pool,每隔2秒submit一个函数任务,而函数每次只需要1秒就能完成,实际上只需要调节增加到1个线程就可以,不需要慢慢增加到100个线程 官方的线程池不够智能,会一直增加到最大线程数目,此线程池则不会。

3、线程池任务的queue队列,修改为有界队列

4、此线程池运行函数出错时候,直接显示线程错误,官方的线程池则不会显示错误,例如函数中写1/0,任然不现实错误。

用法例子:

importtimefromnb_logimportnb_printfromthreadpool_executor_shrink_ableimportThreadPoolExecutorShrinkAbledeff1(a):time.sleep(0.2)# 可修改这个数字测试多线程数量调节功能。nb_print(f'{a} 。。。。。。。')# raise Exception('抛个错误测试')  # 官方的不会显示函数出错你,你还以为你写的代码没毛病呢。pool=ThreadPoolExecutorShrinkAble(200)# pool = ThreadPoolExecutor(200)  # 测试对比官方自带foriinrange(300):time.sleep(0.3)# 这里的间隔时间模拟,当任务来临不密集,只需要少量线程就能搞定f1了,因为f1的消耗时间短,不需要开那么多线程,CustomThreadPoolExecutor比ThreadPoolExecutor 优势之一。pool.submit(f1,str(i))# 1/下面测试阻塞主线程退出的情况。注释掉可以测主线程退出的情况。# 2/此代码可以证明,在一段时间后,连续长时间没任务,官方线程池的线程数目还是保持在最大数量了。# 而此线程池会自动缩小,实现了java线程池的keppalivetime功能。time.sleep(1000000)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么会出现这些错误?表达式的非法开始   使用HttpUrlConnection的java测试URL仅适用于前面的www   在大数据集上使用kmeans的java堆外内存   查找Java RandomAccessFile如何以字符形式读取第n个字节   java Android从BroadcastReceiver获取标题和描述   java使用构造函数参数模拟嵌套类并测试方法   正在将Azure Blob项强制转换为Java文件对象   java并行运行testNG套件   java程序在运行时似乎没有进入   贬低Java规则引擎的优点和缺点   文本区域中的java中心文本   java JPA从多个表中选择错误   类Java问题使用类加载器重新加载代码   java如何在Spring非管理类上使用@Value   java(关闭)Gradle导入VS代码失败   java arraylist拆分(“空白”)并计算字数   Android/Java如何在单独的*中调用函数。java文件?   具有基本身份验证的java Apache Camel RSS模块   java为什么程序在出现溢出或下溢时不抛出异常