gpt4 book ai didi

c++ - Windows C++ 如何调用从一个线程到另一个线程的阻塞读取?

转载 作者:行者123 更新时间:2023-11-28 08:17:43 25 4
gpt4 key购买 nike

我在 C++(Windows、Visual Studio 2010)中有两个类,每个类都运行不同的线程,我想以一种简单的方式在它们之间发送消息。这个想法是主要调用 class2 上的读取,等待 class2 获取数据,然后主类接收它并继续 - 类似于套接字,但在同一程序的两个类/线程之间。这能做到吗?

例子:

class MyClass(){
...
void run(){...}; //runs a thread here that collects data from a network socket
};



int main(){
MyClass *mc = new MyClass();
mc->run();
...
mc->receiveData(); //returns a value AFTER the class gets a hold of it, and blocks in the meantime...
}

有什么简单的方法可以做到这一点吗?有点像创建一个套接字,并从中读取,直到它从网络接收到数据包/数据才会返回,除非我想要一个类在本地系统上执行此操作。谢谢!

最佳答案

创建线程并在线程上调用 join()。 (谷歌那个)。线程连接将允许您产生一个线程进行处理,并指示一旦 main 到达连接,它应该等待它正在连接的线程完成。当线程在连接语句处返回时,您可以从线程返回一个值,这样 main 就可以在需要时知道结果。

关于c++ - Windows C++ 如何调用从一个线程到另一个线程的阻塞读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7115162/

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