当前位置: 首页 > article >正文

C++并发与多线程(7) | 创建多个线程时数据共享的问题

一、创建和等待多个线程

 借助vector存放多个线程thread对象,借助vector和它的迭代器实现创建和运行多个线程,代码如下:


#include <iostream>
#include <thread>
#include <vector>
using namespace std;

void myprint(int inum)
{
    cout << "myprint线程开始执行了,线程编号 = " << inum << endl;
    cout << "myprint线程结束执行了,线程编号 = " << inum << endl;
    return;
}

int main()
{
    vector<thread> mythreads;
    // 创建10个线程,线程入口函数统一使用 myprint
    for (int i = 0; i < 10; i++)
    {
        // 创建线程,并开始执行
        mythreads.push_back(thread(myprint, i));
    }
    for (auto iter = mythreads.begin(); iter != mythreads.end(); ++iter)
    {
        iter->join();// 等待线程返回
    }

    cout << "main over" << endl;
    return 0;
}


http://www.kler.cn/a/105663.html

相关文章:

  • 高阶C语言之六:程序环境和预处理
  • ThreadLocal原理及其内存泄漏
  • 【多状态dp】买卖股票的最佳时机III
  • CSS3_动画(九)
  • 【Pythonr入门第二讲】你好,世界
  • angular的promise实战案例
  • 【API篇】九、Flink的水位线
  • DC电源模块高功率元器件的散热问题
  • PyTorch 与 TensorFlow:机器学习框架之战
  • HarmonyOS 音频通话开发指导
  • C++数据结构X篇_23_快速排序(最快、不稳定的排序)
  • 用 Rust 和 cURL 库制作一个有趣的爬虫
  • MYSQL8-sql语句使用集合。MYCAT-sql语法使用集合
  • Java后端开发——实现登录验证程序
  • 计算机网络——理论知识总结(下)
  • 个人记账理财软件 Money Pro mac中文版软件介绍
  • Fabric.js 讲解官方demo:Stickman
  • 单链表新增删除节点操作
  • COSCon'23媒体和社区合作伙伴正式公布!百川相聚,潮汇大海,邀您天府之城共话开源!...
  • 私有云:【1】ESXI的安装
  • vue项目中定制化音频展示,wavesurfer.js基本使用
  • CTF-Web(3)文件上传漏洞
  • Leetcode—2520.统计能整除数字的位数【简单】
  • 【每日一题】切割后面积最大的蛋糕
  • Hyperledger Fabric搭建测试网络
  • Go 的连接池、重试和超时