我想使用 pthreads 在 C 中创建一个多线程应用程序。我想让一些工作线程在后台做一些事情,但是每隔一段时间,他们就必须在终端上打印一些东西,所以我想他们必须这样做
- “获取输出设备”(在本例中为标准输出)
- 写信给它
- 释放输出设备
- 冲洗并重复。
另外,我希望用户能够“回复”输出。为简单起见,我将假设在用户对线程的输出给出答案之前不会向终端写入任何新内容,以便仅在用户回复后写入新行等。我已阅读在等待终端上的用户输入时,ncurses 似乎是解决这个问题的方法。
但是,现在我读到 ncurses 不是线程安全的,我不确定如何继续。我想我可以用互斥锁包装所有与终端相关的东西,但在我这样做之前,我想知道是否有更聪明、可能更方便的方法来解决这个问题,也许是一个带有条件变量的解决方案?我在这里有点迷路,所以欢迎任何帮助。