c - 不知道在多线程的情况下如何从终端获取命令

标签 c multithreading ubuntu terminal pthreads

我正在研究一个 UDP 套接字项目。我在我的客户端程序中使用 2 个线程。第一个线程注册并保持与服务器的连接。第二个线程需要响应终端的一些命令,例如将客户端的配置发送给服务器。 我需要能够在程序运行时在终端上输入以通知第二个线程它需要做什么,但我不知道如何在我的代码中实现它,我什至不知道该做什么在谷歌上寻找。

我还没有尝试过任何东西,因为我完全不知道该怎么做

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

最佳答案

消息队列?

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

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

关于c - 不知道在多线程的情况下如何从终端获取命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55703558/

相关文章:

Python 静态线程变量

web-applications - 在 Ubuntu 中本地托管 Web 应用程序

c - 关于代码时间复杂度计算的问题

c - 使用 go build 静态链接共享库

c - 如何在C中加密和解密char[]?

java - java中的文件处理

c - 为什么我的按位除法函数会产生段错误?

java - 等待线程

c - 是否可以在 FreeBSD 中使用 ubuntu 的共享对象库?

c++ - 无法使用 std::end 打印字符串