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++ 的异步和同步模型最终都使用了完成队列。不同之处在于,对于同步情况,完成队列处理对应用程序是隐藏的,而在异步情况下,应用程序可以完全控制完成队列的方式和时间 运行.
当然是个愚蠢的问题。 我不明白同步服务器和异步服务器之间的区别。
在 github
上的 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++ 的异步和同步模型最终都使用了完成队列。不同之处在于,对于同步情况,完成队列处理对应用程序是隐藏的,而在异步情况下,应用程序可以完全控制完成队列的方式和时间 运行.