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

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

  • 它的作用是:

    • 将任务分配给进程池中的一个空闲进程。
    • 立即返回一个 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!")
相关推荐
m0_58738300几秒前
无人自助拼豆系统核心功能开发与部署落地全流程实战指南
java·经验分享·后端·struts·架构
phil68 分钟前
打进沙箱的电话都走哪儿?看懂Sandbox的网络设计
后端
iOS开发上架哦12 分钟前
抓包怎么修改响应?响应头、响应体、脚本注入实操教程
后端·ios
JavaGuide16 分钟前
推荐一个好用 DeepSeek Harness 插件,直接把 Agent 上下文给可视化了!
前端·后端
开心就好202517 分钟前
在 Xcode 中运行和调试单元测试的完整指南
后端·ios
橙子家19 分钟前
Exception 简介以及都有哪些类型【C# 基础】
后端
suhan25 分钟前
【数据结构】四、串:串string、模式匹配BF\KMP、广义表
数据结构·后端·算法
flash俊杰29 分钟前
agent 节点、人工授权竞速邮箱与四态 golden 评测
后端
flash俊杰31 分钟前
零模型调用的知识编译器:重叠分片缝合、规则抽取与世代事务
后端·aigc
用户83562907805139 分钟前
如何使用 Python 将 PDF 转换为 PPTX 文件
后端·python