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!")
相关推荐
敲代码的嘎仔24 分钟前
28届后端开发-海康威视日常实习一面(已OC)
java·开发语言·后端·面试·海康威视·实习·大厂
IT_陈寒1 小时前
JavaScript数组排序踩的坑,差点让我加班到凌晨
前端·人工智能·后端
接着奏乐接着舞。1 小时前
【2026】73道Redis 常见面试题与参考答案
数据库·redis·后端·缓存
掘金者阿豪2 小时前
Seedance 2.0/2.5 虚拟素材能跨 Key 共用吗?一次讲清 Asset ID、账号隔离与 SaaS 素材架构
前端·后端
程序员黎剑2 小时前
Spring-Bean生命周期-构造器访问Autowired字段为null
java·后端·spring
泡海椒2 小时前
JQuick-Curl 拦截器实战:统一 Token、日志、请求预处理,让第三方接口调用真正工程化
后端
东方小月2 小时前
一篇文章带你深入拆解Skill的本质与工程实现,让你不再滥用Skill
前端·人工智能·后端
前端小张同学3 小时前
AI全栈开发最佳实践💐
前端·后端·架构
大勇前进3 小时前
折叠面板不用 JS?`<details>` 和 `<summary>` 标签的隐藏用法
后端