c - 异步编程

标签 c

海湾合作委员会 4.4.1

我正在编写一个服务器程序,其中许多客户端将连接到客户端,服务器将管理客户端请求并管理客户端状态。高负载下的许多客户端将是使用异步编程的决定性因素。但是,我从未在 C 中做过 Async。

但是,根据我从研究中了解到的情况,我认为我需要使用 Async。

1) 使用同步编程意味着调用会被阻塞并会造成瓶颈。系统会在高负载下崩溃

2) 使用使用线程的同步编程会为每个客户端创建一个新线程,这意味着在高负载下系统资源可能会耗尽,并可能使系统在处理所有这些线程时过于复杂。

3) 使用 Async 意味着我必须开发一个状态机???

谁能指出我正确的方向?在 Aysnc 编程?

非常感谢任何建议,

最佳答案

将传入的请求放入队列

使用一个线程来调度队列

从队列中取出的请求在自己的线程中执行;队列可以限制事件线程(线程池)的数量以防止服务器过载。请求不会丢失,但它们可能会在队列中等待处理一段时间。

如果您愿意,队列管理器还可以杀死花费太长时间的线程

祝你好运!

关于c - 异步编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2025189/

相关文章:

c - libusb-1.0 热插拔事件在 fork() 之后停止在父级中工作,当子级调用 libusb_exit() 时

c - 从 C 中的函数返回枚举?

c - PECL 安装失败

c - 内联和栈帧控制

c++ - 着色和调色板最佳拟合算法

c - 在 int 溢出附近进行计算的聪明方法

c - 如何获取已安装文件系统的列表

c - 使用 PCM 格式的 ALSA 进行音频录制

c - 从两个数组中输出不同的元素

C - 读取并分配任意字符串数组