gpt4 book ai didi

c++ - C++中如何用pthreads或curses同时输出多个字符串到屏幕

转载 作者:太空宇宙 更新时间:2023-11-04 12:01:12 26 4
gpt4 key购买 nike

我在 DEV C++ 上编译我的应用程序,并使用 pthreads 库进行多线程处理。我的主线程包括将“Hello World”打印到屏幕的开头 (0,0)。我新创建的线程包括将“星期一”打印到屏幕中间,顶行 (0,60)。因为我使用的是 pthreads,所以它们会同时执行,这很好。但是,由于只有 1 个光标,因此一次只能打印一个。我希望它们都在它们执行的那一刻被打印出来。我用简单的 cout << "Hello World";

写到屏幕上

我是否需要某种类型的 curses 库来在它们执行的确切时间写入多个字符串?或者我可以通过标准 C++ 来完成吗?记住,我要输出 2 个东西,它一次输出一个。如何在不同坐标同时输出 2 个字符串?

最佳答案

正如 David H 在评论中所说,使用一个线程写入显示器,并有一个队列。

队列可能包含这样的一些数据:

class printing
{
public:
printing(int x, int y, const std::string &str);

private:
const std::string m_str;
int m_x;
int m_y;
};

std::queue<printing> print_queue;

你需要一个互斥锁或类似的东西来向队列中添加/删除东西。

std::mutex print_queue_mutex;

void add_printing(printing &pr)
{
print_queue_mutex.lock();
print_queue.push_back(pr);
print_queue_mutex.unlock();
}

我会让您了解如何执行实际的“从队列打印”功能。它遵循相同的原则。

关于c++ - C++中如何用pthreads或curses同时输出多个字符串到屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14043788/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com