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!")
相关推荐
ruokkk5 分钟前
eureka如何绕过 LVS 的虚拟 IP(VIP),直接注册服务实例的本机真实 IP
后端
AKAMAI12 分钟前
为何AI推理正推动云计算从集中式向分布式转型
后端·云原生·云计算
程序员鱼皮20 分钟前
学 Java 还是 Go 语言?这事儿很简单!
java·后端·计算机·程序员·开发·编程经验·自学编程
天蓝的那一角31 分钟前
你想要的Lambda第二弹
后端
JohnYan33 分钟前
Bun技术评估 - 06 Redis
redis·后端·bun
写bug写bug35 分钟前
Dubbo中SPI机制的实现原理和优势
java·后端·dubbo
刘白Live39 分钟前
【Java】Git的一些常用命令
git·后端
Barcke40 分钟前
AI赋能开发者工具:智能提示词编写与项目管理实践
前端·后端
攒了一袋星辰1 小时前
Spring类型转换融入IOC生命周期
java·后端·spring
考虑考虑1 小时前
Springboot3.4.x中的RestClient 和 RestTemplate
spring boot·后端·spring