python并发编程:Python在FastAPI服务中使用多进程池加速程序运行

简介: python并发编程:Python在FastAPI服务中使用多进程池加速程序运行

往期文章:

  1. 并发编程简介
  2. 怎样选择多线程多进程多协程
  3. Python速度慢的罪魁祸首,全局解释器锁GIL
  4. 使用多线程,Python爬虫被加速10倍
  5. Python实现生产者消费者爬虫
  6. Python线程安全问题以及解决方案
  7. Python好用的线程池ThreadPoolExecutor
  8. Python使用线程池在Web服务中实现加速
  9. 使用多进程multiprocessing模块加速程序的运行

使用多进程在FastAPI服务中加速

大部分情况下使用多线程加速就可以了,但是,有些应用是也会遇到cpu密集型的计算。怎么在FastAPI中使用进程池来加速呢?下面通过代码演示方式为大家介绍一下:

from fastapi import FastAPI,Query
import math
app = FastAPI(debug=True)
from concurrent.futures import ProcessPoolExecutor

def is_prime(num):

    """
    判断是不是素数
    """
    if num < 2:
        return False

    if num == 2:
        return True

    if num % 2 == 0:
        return False
    sqrt_n  = int(math.floor(math.sqrt(num)))

    for i in range(3,sqrt_n+1,2):
        if num % i == 0:
            return False
    return True

@app.get("/is_prime/{num_list}")
def api_is_prime(num_list:str=Query(description="判断素数的参数")):
    num_list = [int(x) for x in num_list.split(",")]
    result = pool.map(is_prime,num_list)
    return dict(zip(num_list,result))



if __name__ == "__main__":
    import uvicorn
    pool = ProcessPoolExecutor()
    uvicorn.run(app=app)

注意: ProcessPoolExecutor必须放在所以函数的最后面,而且必须在__main__里面

启动应用:

python 07.fastapi_process_pool.py

测试接口,结果如下:

目录
相关文章
|
7月前
|
人工智能 安全 调度
Python并发编程之线程同步详解
并发编程在Python中至关重要,线程同步确保多线程程序正确运行。本文详解线程同步机制,包括互斥锁、信号量、事件、条件变量和队列,探讨全局解释器锁(GIL)的影响及解决线程同步问题的最佳实践,如避免全局变量、使用线程安全数据结构、精细化锁的使用等。通过示例代码帮助开发者理解并提升多线程程序的性能与可靠性。
250 0
|
7月前
|
数据采集 NoSQL 调度
当生成器遇上异步IO:Python并发编程的十大实战兵法
本文通过十大实战场景,详解Python中生成器与异步IO的高效结合。从协程演进、背压控制到分布式锁、性能剖析,全面展示如何利用asyncio与生成器构建高并发应用,助你掌握非阻塞编程核心技巧,提升I/O密集型程序性能。
253 0
|
7月前
|
监控 编译器 Python
如何利用Python杀进程并保持驻留后台检测
本教程介绍如何使用Python编写进程监控与杀进程脚本,结合psutil库实现后台驻留、定时检测并强制终止指定进程。内容涵盖基础杀进程、多进程处理、自动退出机制、管理员权限启动及图形界面设计,并提供将脚本打包为exe的方法,适用于需持续清理顽固进程的场景。
|
8月前
|
数据采集 搜索推荐 调度
当生成器遇上异步IO:Python并发编程的十大实战兵法
生成器与异步IO是Python并发编程中的两大利器,二者结合可解决诸多复杂问题。本文通过十个真实场景展示其强大功能:从优雅追踪日志文件、API调用流量整形,到实时数据流反压控制、大文件分片处理等,每个场景都体现了生成器按需生成数据与异步IO高效利用I/O的优势。两者配合不仅内存可控、响应及时,还能实现资源隔离与任务独立调度,为高并发系统提供优雅解决方案。这种组合如同乐高积木,虽单个模块简单,但组合后却能构建出复杂高效的系统。
196 0
|
10月前
|
前端开发 JavaScript 关系型数据库
基于python的租房网站-房屋出租租赁系统(python+django+vue)源码+运行
该项目是基于python/django/vue开发的房屋租赁系统/租房平台,作为本学期的课程作业作品。欢迎大家提出宝贵建议。
394 6
|
10月前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的美容预约管理系统源码+运行
基于Python+Vue开发的美容预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的美容诊所预约管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
172 9
|
10月前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的摄影网上预约管理系统源码+运行
基于Python+Vue开发的摄影网上预约管理系统(前后端分离),影楼婚纱摄影,这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的在线摄影预约管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
185 8
|
10月前
|
JavaScript 前端开发 关系型数据库
基于Python+Vue开发的体育场馆预约管理系统源码+运行
本项目为大学生课程设计作业,采用Python和Vue技术构建了一个体育场馆预约管理系统(实现前后端分离)。系统的主要目标在于帮助学生理解和掌握Python编程知识,同时培养其项目规划和开发能力。参与该项目的学习过程,学生能够在实际操作中锻炼技能,为未来的职业发展奠定良好的基础。
243 3
|
10月前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的民宿客房预订管理系统源码运行
基于Python+Vue开发的民宿客房预订管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的民宿客房预订管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
245 8
|
10月前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的新闻管理系统源码+运行
基于Python+Vue开发的新闻管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的新闻管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
233 5

推荐镜像

更多