我需要实现一个服务器,多个客户端可以同时向其发送请求。处理单个请求的代码可能会在中间阻塞(使线程进入睡眠状态)。
目前,我正在使用C++ GRPC
同步服务器。客户端每次发送请求时,都会在服务器端生成一个新线程。这是一个问题,因为服务器可以同时创建太多线程。
我正在考虑两种解决方案来避免该问题:
1)将同步服务器与ResourceQuota
配合使用(例如,将最大线程数限制为10)。
2)使用异步服务器。
实施第二个解决方案比实施第一个解决方案困难得多。 第二种解决方案与第一种解决方案相比有什么优势?