void func1() {
cout << "==线程外部函数输出的消息==" << endl;
}
int val = 10;
//动态生成多个线程
for (int i = 0; i < 5; i++)
{
cout << "循环索引:"<<i << endl;
//线程实例,val为捕获的外部变量,直接val不可修改,加上&地址符号后&val这样可修改val值
thread t = thread([i,&val,&t]() {
cout << "线程ID:" << t.get_id() << endl;
func1();//调用线程外部函数
val += 5;//改变线程外部变量值
cout <<"val初始线程:"<<t.get_id()<<"改变值后为:"<< val << endl;
});
t.join();
}
C++动态生成多个线程并修改线程外部变量
最新推荐文章于 2024-06-13 08:51:35 发布
本文详细介绍了如何在C++中使用std::thread库动态创建多个线程,并在这些线程中安全地修改外部共享变量。通过示例代码展示了线程同步的重要性,使用了互斥锁mutex确保并发访问时的数据一致性。
摘要由CSDN通过智能技术生成