首页 > 解决方案 > 需要有关在 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() 使用另一个线程吗?或者他们是这样做的更好方法。

将不胜感激任何帮助

标签: c++windowsmultithreadingwinsock

解决方案


推荐阅读