我有一个c ++应用程序,在DEV C ++中编译,它包含pthread
多线程库。我有2个帖子。默认的int main()
和我创建的线程将打印出来
一周中的几天,每隔几秒钟一次。但是当我执行它时,它可以工作,但是
程序中只有一个光标。这就是问题所在:我需要一种方法将一周的这些天写入屏幕到坐标0, 50
,例如,只需定位文本
不是光标。这是带光标的第一个线程,不会干扰我的第二个线程
输出,他们将同时执行
答案 0 :(得分:0)
假设您正在使用ncurses或类似的东西?因此,您的控制台终端是共享资源,您必须使用互斥锁保护它,并注意每个线程中的光标定位。您还可以将一个线程声明为另一个线程恢复其光标位置的boss。在获取互斥锁之后,其他线程会执行类似getcurx,getcury,自己定位和outout的操作,然后恢复使用getcurx / y检索的光标位置。
请注意,在每种情况下,所有线程都需要在访问终端之前获取互斥锁
您还可以检查是否可以在ncurses中使用内置线程支持,请注意use_screen
,use_window