我不知道在多线程情况下如何从终端获取订单

时间:2019-04-16 08:18:05

标签: c multithreading ubuntu terminal pthreads

我正在处理UDP套接字项目。我在客户端程序中使用2个线程。第一个线程注册并维护与服务器的连接。第二个线程需要回答来自终端的一些命令,例如将客户端的配置发送到服务器。 我需要能够在程序运行时在终端上键入内容以告知第二个线程它需要做什么,但是我不知道如何在我的代码中实现它,甚至不知道该怎么做。在Google上寻找。

因为我完全不知道如何做,所以我没有尝试过任何东西

例如,我希望能够在程序运行时在终端中键入“ sendconf”,并让第二个线程对此进行回答。我知道如何将客户端的配置发送到服务器,我只是不知道如何通知线程它需要执行此操作。

1 个答案:

答案 0 :(得分:2)

消息队列?

在第二个线程轮询的队列中添加“消息”(命令),然后它处理该消息,并将答复发送到另一个线程,该队列由第一个线程轮询。

如果您想同步,则第二个线程可以直接在消息结构中为回复设置数据,然后设置一个标志,表示已完成。第一个线程一直等待该标志,然后将结果提供给用户。