【发布时间】:2020-08-23 21:43:53
【问题描述】:
您好,我正在尝试实现 DBMS 多线程 gRPC 异步服务。现在我坚持使用共享完成队列。我最初保存每个线程启动的 RPC 调用的标签,并根据 cq.Next() 的 rpc 调用返回检查标签,以确保我有正确的线程来检查回复。但是,我从Confusion around CompletionQueue in an async C++ client 发现每个标签只会从 cq 中出来一次。我想知道让多个线程共享同一个 cq 的最佳方法是什么?我希望每个线程能够只处理它启动的 RPC 调用,并且我不希望一个线程等待另一个线程创建的 RPC。这可能吗?怎么做?有没有办法遍历队列,只删除带有匹配标签的 RPC?我没有从之前的 stackoverflow 帖子中看到明确的解决方案。
【问题讨论】:
标签: grpc