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!")
相关推荐
子兮曰2 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰2 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
爱勇宝2 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
胡写代码2 天前
别再前后端各写一套表单校验了
java·后端
大勇前进2 天前
原生 PHP 还是 Laravel?小项目到底要不要上框架
后端
yuzhi_liu2 天前
我用 LangGraph4j 实现 Multi-Agent Supervisor
后端
alsmile2 天前
Node-RED 之外,国产规则引擎的新方案:基于标准语法,Go 先行实现
后端·开源·go
大白802 天前
PHP 内存溢出排查思路:看懂报错日志,精准定位问题
后端
二月龙2 天前
PHP 接口返回统一响应封装,让前后端对接更省心
后端
盖伦发发2 天前
软件工程SOLID 五大设计原则
后端·软件工程