gpt4 book ai didi

c++ - 如何使用 select() 和 gRPC 创建服务器?

转载 作者:行者123 更新时间:2023-11-30 05:22:30 25 4
gpt4 key购买 nike

我需要在单线程应用程序(具有额外的套接字 channel )中使用 gRPC。天真地,我正在考虑使用 select() 并根据弹出的文件描述符调用 gRPC 来处理消息。我的问题是,有人可以给我一个粗略的(5-10 行代码)框架,说明在 select() 弹出后我需要调用什么吗?

在同步情况下查看 Google 的“hello world”示例暗示了一个线程池(我无法使用),在异步情况下显示了主循环阻塞——这对我不起作用,因为我需要处理其他套接字操作。

最佳答案

在这一点上(可能永远都做不到)。

事件循环(包括直接使用 select()/poll() 样式 API)的一大弱点是,除了两者之间的直接集成之外,它们无法以任何自然方式组合。

我们理论上可以为 Linux 添加这样的功能——导出一个带有 timerfd 的 epoll_fd,如果调用完成队列是有效的,那么它变得可读,但这样做会对堆栈的其余部分施加大量限制和架构开销只是为了在 Linux 上支持这个用例。其他任何地方都需要后台线程来管理 fd 的可读性。

关于c++ - 如何使用 select() 和 gRPC 创建服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39624822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com