python线程池

一、废弃的第三方线程池库 :threadpool

threadpool已经不建议使用了,官方文档推荐我们使用标准库中的 multiprocessing 或者  asyncio.A 来替代

官网地址:https://pypi.org/project/threadpool/

 

 

二、python 3.2之后,标准昆中为我们提供了,ThreadPoolExecutor线程池

案例如下,通过线程池来发送服务端请求

服务端:

复制代码
# coding: utf-8
from flask import Flask
import time
import random

app = Flask(__name__)

reqCount = 0

@app.route("/")
def hello_world():
    global reqCount
    reqCount = reqCount + 1
    curCount = reqCount
    randTime = random.randint(0,3)
    time.sleep(randTime)
    print(reqCount,randTime)
    return "this is the " + str(curCount) + " request"
    
if __name__ == "__main__":
    app.run(host="0.0.0.0",port=8000,debug=True)
复制代码

客户端:

复制代码
# coding: utf-8
import requests
import time
from concurrent.futures import ThreadPoolExecutor

def reqlocal():
    r = requests.get('http://localhost:8000')
    rTxt = r.text
    print(rTxt)

def threadPoolTest():
    startTime = int(time.time())
    loopCnt = 30
    with ThreadPoolExecutor(max_workers=10) as t:
        for i in range(loopCnt):
            task = t.submit(reqlocal)
            task.done()
    entdTime = int(time.time())
    proTime = entdTime - startTime
    print("总耗时:",proTime)
    
if __name__ == "__main__":
    threadPoolTest()
复制代码

运行结果:

服务端:

 

 客户端:

 

posted @   远洪  阅读(1316)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示