gRPC cpp 异步服务器与同步服务器

gRPC cpp async server vs sync server

当然是个愚蠢的问题。 我不明白同步服务器和异步服务器之间的区别。

github

上的 gRPC 示例中

异步和同步的区别并不明显。

根据这个 和我的测试同步 gRPC 服务器可以处理并行请求。

在异步示例中,server.Run(); 处于阻塞状态。

那么两者有什么区别?

我找到了问题的答案here

简而言之,

The async model give the application code full control over threading. Sync can handle multiple requests in parallel, yes, but they are serviced from a gRPC thread pool. If you want finer control over threading, then async is the better model to use

看来你明白了。 This link 将提供有关 gRPC C++ 异步基础知识的更多详细信息。您认为异步模型提供了更精细的控制是正确的。

提供一些实现细节 - gRPC C++ 的异步和同步模型最终都使用了完成队列。不同之处在于,对于同步情况,完成队列处理对应用程序是隐藏的,而在异步情况下,应用程序可以完全控制完成队列的方式和时间 运行.