gpt4 book ai didi

python - grpc server 中 ThreadPoolExecutor 的作用是什么?

转载 作者:行者123 更新时间:2023-12-05 04:01:28 34 4
gpt4 key购买 nike

当我们实例化 gRPC 服务器时,我们将 ThreadPoolExecutor 传递给它的构造函数:

grpc.server(futures.ThreadPoolExecutor(max_workers=1))

据我所知,Python 具有 GIL,它会无用地使用线程来执行 CPU 密集型任务。

例如,我的 gRPC 服务器提供 Tensorflow 模型和 gRPC 健康检查服务。增加线程池中的线程数对我有什么好处吗?

最佳答案

现在 grpc python 与并发 futures 线程池相关联,我相信路线图显示 future 我们将能够使用 asyncio。线程池执行器只允许我们指定最大并发连接数。你是正确的,使用 python 我们有 GIL,结果线程被限制在同一个 CPU 核心,因此我们没有线程并行性。如果您的任务受 CPU 限制,则它们不会通过添加更多线程在 Python 中受益。

线程池中的更多线程是否有任何好处实际上取决于您的应用程序的细节。您可以在一个进程中运行 grpc 服务器,在另一个进程中运行 tensorflow(使用多处理模块),这使您可以访问更多内核,但您需要确定将信息从 tensorflow 进程传输到 grpc 服务器的协议(protocol)。

关于python - grpc server 中 ThreadPoolExecutor 的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55372729/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com