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

时间:2018-08-09 10:33:26

标签: c++ asynchronous grpc

肯定是一个愚蠢的问题。 我没有得到同步和异步服务器之间的区别。

github上的gRPC示例中

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

根据此question并通过我的测试同步,gRPC服务器可以处理并行请求。

在异步示例中,server.Run();正在阻止。

那么两者之间有什么区别?

2 个答案:

答案 0 :(得分:4)

我找到了问题here

的答案

简而言之

  

异步模型使应用程序代码可以完全控制线程。同步可以并行处理多个请求,是的,但是它们是从gRPC线程池提供服务的。   如果您想更好地控制线程,那么异步是使用的更好模型

答案 1 :(得分:2)

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

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