c++ - 需要有关在 C++ 中处理线程的建议
问题描述
我正在开发一个服务器应用程序,它接受来自客户端的传入连接并为每个客户端(连接的)创建线程
问题是; 我不知道我应该放在哪里,WaitForMultipleObjects
以便我可以释放那些断开连接的客户端(线程)的资源。
这是我如何做到这一点的伪结构。在我的主线程中,我正在执行以下操作:
For (ClientId = 0; ClientId < NumOfClientsSupported; ClientId++){
Wait_for_Incoming_Connection(); // Continuously listening incoming connection requests of clients
thread_handle_array[ClientId] = CreateThread(...); // Create thread for each client
// Do some other stuff
}
// Outside loop
WaitForMultipleObjects(...); // Would like to join unusable (disconnected clients) threads here
假设我有 10 个客户端连接,1 个以某种方式断开连接(返回到主线程),现在我想释放它使用的资源;为此我已经打电话WaitForMultipleObjects()
,但我不能离开循环,因为我正在听其他客户端的连接。
我应该只为 WaitForMultipleObjects() 使用另一个线程吗?或者他们是这样做的更好方法。
将不胜感激任何帮助
解决方案
推荐阅读
- javascript - 截断文本以适应容器的固定高度
- sql - 如何构建 SQL 以按日期获取分组数据
- server - how to connect domain from wildcard subdomain
- bash - Force shell script to keep command in foreground after process substitution
- ruby-on-rails - Carrierwave returning wrong file sizes
- python - Django Rest Framework,如何从名称列表中添加序列化器字段
- objective-c - Swift 子类化 ObjC 类,初始化器获得识别选择器
- dns - 获取交换服务器的域名
- laravel - 找不到资源!!拉拉维尔 5.7
- azure - 如何在应用洞察中找到用户数量