1

我正在开发一个即时消息应用程序。

这是我需要帮助的情况: 我的代码中的例程 fgets() 用户输入的消息。现在我需要唤醒一个线程,该线程具有将消息发送到套接字等的例程。我不确定如何执行此操作。

如果我使用互斥锁:我不希望我的第一个线程等待。因此我不想使用这个。同样,我不能使用 cond_variable。

请告诉我如何得到这个。

4

1 回答 1

0

鸭子关于不要过度思考的观点是一个很好的观点。

您可以采用的另一种方法是使用管道。您的控制台处理线程将消息写入管道,并且网络线程从管道进行阻塞读取。

您最终可能得到的是网络线程在控制台管道和网络套接字上执行 select()。然后当它有东西要发送或从网络接收东西时,它会醒来并做一些事情。时髦!

于 2012-03-29T00:13:13.050 回答