C ++两个线程,一个用于输入,一个用于输出

时间:2019-05-21 22:38:36

标签: c++ multithreading windows-console

我正在开发控制台应用程序,但对如何处理此问题没有任何想法。

我的问题如下:

我的应用程序运行两个线程(1)生成输出,(2)一个线程等待用户在控制台上写一行。我的问题是,有时线程1可能会在控制台中写几行,“拆分”用户正在写的内容,从而使他对所写的内容感到困惑。

目前,我正在研究两种可能性:

(1)打开两个控制台,一个用于输出,另一个用于输入。对于这种方法,我已经从网上找到的资源中有了一个想法,但是我不太喜欢这种解决方案。

(2)以某种方式保留一行或几行,仅显示用户正在向线程2中写入的内容,其余几行则显示由线程1生成的输出。

平易近人的两个可行吗?有没有可供我学习的资源?还是有更常用的方法?

谢谢!

1 个答案:

答案 0 :(得分:0)

通常的方法是使用专用线程进行GUI交互。业务逻辑可以在不同的线程中完成。

您正在使用控制台,但这是相同的想法。应该只允许一个线程与之交互。