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
.