python2中多进程库multiprocessing.pool.ThreadPool.Pool使用

  • apply_asyncPool 对象的一个方法,用于异步地(非阻塞地)将任务提交到进程池中执行。

  • 它的作用是:

    • 将任务分配给进程池中的一个空闲进程。
    • 立即返回一个 AsyncResult 对象,而不等待任务完成。
    • 任务会在后台的某个进程中执行。

补充说明:

  • 异步执行apply_async 是非阻塞的,提交任务后会立即返回,不会等待任务完成。如果需要等待任务完成并获取结果,可以调用返回的 AsyncResult 对象的 get() 方法。
  • 进程池的优势:使用进程池可以避免频繁创建和销毁

代码如下,

py 复制代码
# -*- coding: utf-8 -*-
import os 
import sys 
import time 
from multiprocessing.pool import ThreadPool as Pool

def func1(i):
    time.sleep(0.5)
    res = i + 1
    return res 

if __name__ == "__main__":
    p = Pool(20)
    tasks = []
    for i in range(100):
        task = p.apply_async(func1, (i,))
        tasks.append(task) 
    p.close()
    p.join()
    print("tasks size: {}".format(len(tasks))) 
    
    results = []
    for task in tasks:
        result = task.get()
        results.append(result)
    print("results size: {}".format(len(results))) 
    print(results) 

    print("success!")
相关推荐
用户99045017780091 分钟前
JeecgFlow之Camunda开发脚手架介绍,让天下没有难用的工作流
后端
敖行客 Allthinker1 分钟前
Go 语言中 panic 和 recover 的代价:性能与设计的权衡
开发语言·后端·golang
谦行1 小时前
前端视角 Java Web 入门手册 4.4:Web 开发基础—— Listener
java·后端
非优秀程序员2 小时前
使用Python给自己网站生成llms.txt
人工智能·后端·架构
尘鹄2 小时前
一文讲懂Go语言如何使用配置文件连接数据库
开发语言·数据库·后端·golang
benben0442 小时前
Django小白级开发入门
后端·python·django
qw9492 小时前
SpringBoot3—场景整合:环境准备
java·后端
孟and平5 小时前
Flask 打包为exe 文件
后端·python·flask
大只因bug6 小时前
基于Django的协同过滤算法养老新闻推荐系统的设计与实现
后端·python·django·协同过滤算法推荐系统·新闻推荐网站系统·养老新闻推荐系统·个性化新闻推荐网站系统
_TokaiTeio10 小时前
JVM面试题100
java·开发语言·jvm·后端·虚拟机