0

我有一个 C++ 应用程序,在 DEV C++ 中编译,它包括pthread多线程库。我有 2 个线程。默认int main()的,我创建的一个线程,它将每隔几秒打印出一周中的几天,一次一个。但是当我执行这个时,它可以工作,但程序中只有一个光标。这就是问题所在:我需要将一周中的这些天写入屏幕坐标0, 50的方式,例如,只定位文本而不是光标。这是第一个带有光标的线程,不会干扰我的第二个线程输出,它们将同时执行

4

1 回答 1

0

假设您正在使用 ncurses 或类似的东西?所以你的控制台终端是一个共享资源,你必须用互斥锁来保护它,并注意每个线程中的光标定位。您还可以将一个线程声明为老板,其光标位置由另一个线程恢复。然后,另一个线程将在获取互斥锁后,执行 getcurx、getcury 之类的操作,进行自己的定位和输出,然后恢复使用 getcurx/y 检索到的光标位置。
请注意,在每种情况下,所有线程都需要在访问终端之前获取互斥锁。
您还可以检查是否可以使用 ncurses 中的内置线程支持,请注意use_screenuse_window

于 2012-12-25T20:25:30.403 回答