为了账号安全,请及时绑定邮箱和手机立即绑定

grpc服务器中ThreadPoolExecutor的目的是什么?

grpc服务器中ThreadPoolExecutor的目的是什么?

人到中年有点甜 2021-12-17 16:26:54
当我们实例化 gRPC 服务器时,我们传递ThreadPoolExecutor给它的构造函数:grpc.server(futures.ThreadPoolExecutor(max_workers=1))据我所知,Python 具有 GIL,它使线程无用地用于 CPU 绑定任务。例如,我的 gRPC 服务器提供 Tensorflow 模型和 gRPC 健康检查服务。增加线程池中的线程数对我有什么好处吗?
查看完整描述

1 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

现在 grpc python 绑定到并发期货线程池,我相信路线图显示将来我们将能够使用 asyncio。线程池执行器只允许我们指定最大并发连接数。您是正确的,使用 python 我们有 GIL,因此线程仅限于相同的 CPU 内核,因此我们没有线程的并行性。如果您的任务受 CPU 限制,它们不会通过添加更多线程在 Python 中受益。

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


查看完整回答
反对 回复 2021-12-17
  • 1 回答
  • 0 关注
  • 194 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号