社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

GRPC python支持客户端和服务器上的多线程

Vaibhav Bedi • 5 年前 • 1730 次点击  

我想知道grpc python是否支持多线程?请分享一些参考资料。 我已经在单线程中编写了代码,但不知道如何在多线程中编写。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38389
 
1730 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Lidi Zheng
Reply   •   1 楼
Lidi Zheng    6 年前

grpc python支持客户机和服务器上的多线程。至于服务器,您将使用线程池创建服务器,因此默认情况下它是多线程的。对于客户机,您可以创建一个通道并将其传递给多个Python线程,然后为每个线程创建一个存根。此外,由于通道是用C而不是用Python管理的,因此在同一进程中为同一服务器创建多个通道不会给您带来任何性能优势。

import threading
import grpc

def worker(channel):
    stub = your_pb2_grpc.YourStub(channel)
    ...YOUR WORK WITH STUB

channel = grpc.insecure_channel(<YOUR PORT>)
your_thread = threading.Thread(target=worker, args=(channel,))
your_thread.start()

此外,如果您打算使用多处理而不是多线程,可以在此处引用 https://github.com/grpc/grpc/issues/16001 https://github.com/grpc/grpc/blob/master/doc/fork_support.md .