zoukankan      html  css  js  c++  java
  • python 多线程多进程

    1, 使用python 提供的线程包

    https://docs.python.org/3/library/concurrent.futures.html#threadpoolexecutor-example

    import time
    from concurrent.futures import ProcessPoolExecutor, ThreadPoolExecutor,wait
    
    
    def main(page):
        time.sleep(2)
        return page**2
    
    def process_test():
        # 多进程
        t1 = time.time()
        with ProcessPoolExecutor(max_workers=10) as executor:
            all_task = [executor.submit(main,page) for page in range(100)]
            wait(all_task)
            for task in all_task:
                print(task.result())
        print("耗时:",time.time() -t1)
    
    
    def thread_test():
        t1 = time.time()
        with ThreadPoolExecutor(max_workers=10) as executor:
            all_task = [executor.submit(main, page) for page in range(100)]
            wait(all_task)
            for task in all_task:
                print(task.result())
        print("耗时:", time.time()-t1)
    
    def async_process_test():
        t1 = time.time()
        executor = ProcessPoolExecutor(max_workers=10)
        all_task = [executor.submit(main, page) for page in range(100)]
        # wait(all_task)       # 异步不等待直接就过
        print("耗时",time.time() - t1)
        return "res"
    
    
    if __name__ == '__main__':
        process_test()
        thread_test()
        res = async_process_test()
        print(res)
    

      

  • 相关阅读:
    正则表达式练习
    Linux下文件删除的原理
    (转)linux grep 正则表达式
    linux 需要记忆的知识
    linux 常用命令
    TestNG测试方法
    TestNG配置注解
    jquery 获取和设置 select下拉框的值
    Kings(状压DP)
    Tirp(状压DP)
  • 原文地址:https://www.cnblogs.com/wjun0/p/14701062.html
Copyright © 2011-2022 走看看