Py学习  »  Python

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

Vaibhav Bedi • 4 年前 • 1573 次点击  

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

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

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 .