c++实现:创建两个独立线程,一个线程给结构体赋值,一个线程打印结构体
时间: 2023-11-28 16:42:16 浏览: 139
C++实现线程
4星 · 用户满意度95%
在C++中,可以使用std::thread库来创建独立线程。为了实现创建两个独立线程,一个线程给结构体赋值,一个线程打印结构体,可以按照以下步骤进行:
1. 定义一个结构体,包含需要赋值和打印的变量。
2. 定义一个函数,用于给结构体赋值。
3. 定义另一个函数,用于打印结构体。
4. 在主函数中,创建两个std::thread对象,分别传入上述两个函数。
5. 使用join()函数等待两个线程执行完毕。
下面是一个简单的示例代码:
```
#include <iostream>
#include <thread>
#include <mutex>
struct MyStruct {
int value;
std::string name;
std::mutex mtx;
};
void setValue(MyStruct& s) {
std::lock_guard<std::mutex> lock(s.mtx);
s.value = 10;
s.name = "example";
}
void printValue(const MyStruct& s) {
std::lock_guard<std::mutex> lock(s.mtx);
std::cout << "Value: " << s.value << ", Name: " << s.name << std::endl;
}
int main() {
MyStruct s;
std::thread t1(setValue, std::ref(s));
std::thread t2(printValue, std::cref(s));
t1.join();
t2.join();
return 0;
}
```
阅读全文