• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    python concurrent.futures模块的使用测试

    概述

    concurrent.futures 是 3.2 中引入的新模块,它为异步执行可调用对象提供了高层接口。
    可以使用 ThreadPoolExecutor 来进行多线程编程,ProcessPoolExecutor 进行多进程编程,两者实现了同样的接口,这些接口由抽象类 Executor 定义。
    这个模块提供了两大类型,一个是执行器类 Executor,另一个是 Future 类。
    执行器用来管理工作池,future 用来管理工作计算出来的结果,通常不用直接操作 future 对象,因为有丰富的 API。

    说明

    Python3.2开始,标准库为我们提供了concurrent.futures模块,它提供了ThreadPoolExecutor和ProcessPoolExecutor两个类,实现了对threading和multiprocessing的进一步抽象,对编写线程池/进程池提供了直接的支持.

    #! /usr/bin/env python
    # -*- coding: utf-8 -*-#
    
    # -------------------------------------------------------------------------------
    # Name:         demo3
    # Author:       yunhgu
    # Date:         2021/7/8 15:17
    # Description: 
    # -------------------------------------------------------------------------------
    import os
    import time
    import threading
    from concurrent.futures import ProcessPoolExecutor, ThreadPoolExecutor, as_completed
    
    def work(x):
        time.sleep(1)
        temp = f"父进程{os.getppid()}:子进程{os.getpid()}:线程{threading.get_ident()}:{x}"
        return temp
    
    def sub_thread():
        temp_list = []
        with ThreadPoolExecutor(max_workers=3) as t:
            task_list = [t.submit(work, i) for i in range(5)]
            for task in as_completed(task_list):
                if task.done():
                    temp_list.append(task.result())
        return temp_list
    
    def main():
        print(f"主进程:{os.getpid()}")
        path_list = []
        with ProcessPoolExecutor(max_workers=3) as p:
            task_list = [p.submit(sub_thread) for i in range(5)]
            for task in as_completed(task_list):
                if task.done():
                    path_list.append(task.result())
        for path in path_list:
            print(path)
    
    if __name__ == '__main__':
        main()

    不论你在什么时候开始,重要的是开始之后就不要停止。不论你在什么时候结束,重要的是结束之后就不要悔恨。

    到此这篇关于python concurrent.futures模块的使用测试 的文章就介绍到这了,更多相关python concurrent使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • python基于concurrent模块实现多线程
    • python 实现多进程日志轮转ConcurrentLogHandler
    • Python并发concurrent.futures和asyncio实例
    • Python concurrent.futures模块使用实例
    • python程序中的线程操作 concurrent模块使用详解
    上一篇:Pandas中GroupBy具体用法详解
    下一篇:教你如何利用python3爬虫爬取漫画岛-非人哉漫画
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    python concurrent.futures模块的使用测试 python,concurrent.futures,模块,