我想知道 grpc python 支持多线程吗?请分享一些参考。
我已经在单线程中编写了代码,但不知道如何在多线程中编写。
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/issues/16001 and https://github.com/grpc/grpc/blob/master/doc/fork_support.md https://github.com/grpc/grpc/blob/master/doc/fork_support.md.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)