在同一台计算机上使用多个终端的 C++ 多线程程序示例

C++ Multithreading program example using multiple terminals in the same computer

我是多线程编程的新手。我正在尝试 运行 在一台笔记本电脑上使用两个终端的程序。其中,在这两个终端中应该注册为user1和user2,并且在这两个程序开始运行ning之前,其中一个应该等待另一个使用"thread"或"pthread"(我不'知道区别)。如果 user1 将向 terminal1 输入任何消息,它也应该在 terminal2 中显示给 user2。 即使在研究了这么多次线程之后,我也不知道如何开始编写代码。请帮忙。先感谢您。

#include <string>
#include <iostream>
#include <thread>

using namespace std;

void msg1(string msg) {
    cout << "user1 says: " << msg << endl;
}
void msg2(string msg) {
    cout << "user2 says: " << msg << endl;
}
int main() {
    string message1, message2;
    cin >> message1;
    thread t1(msg1, message1);
    t1.join();
    cin >> message2;
    thread t2(msg2, message2);
    t2.join();
    return 0;
}

您试图一次实现太多,使用线程和多个终端。

后者很简单,如果你只需要输出:只需将内容写入文件,然后在终端中 运行 tailf filename,跟随文件的内容。你可以使用例如一个 std::fstream 以保持 std::cout.

熟悉的界面

如果您需要输入,事情会变得有点复杂。在这种情况下,您需要在终端 window 和程序之间打开一个 two-directional 连接。沟通渠道将是例如TCP 或一些本地传输。使用 TCP,您可以简单地使用 telnet 连接到程序。

关于线程,只需阅读有关它们的任何随机 C++ 11 教程即可。您还可以查看标准线程的来源 Boost.Thread 的文档。无论如何,您都必须自己对此处的主题进行一些研究,我只是想为您指明正确的方向。