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

创建10个线程并发执行(STL/Windows/Linux)

C++并发编程入门 目录

STL 写法

#include <thread>
#include <iostream>
using namespace std;void thread_fun(int arg)
{cout << "one STL thread " << arg << " !" << endl;
}int main(void)
{int thread_count = 10;int id_array[10] = { 1,2,3,4,5,6,7,8,9,10 };std::thread thread_arr[10] = { };for (int i = 0; i < thread_count; i++){thread_arr[i] = std::thread(thread_fun, id_array[i]);}for (int i = 0; i < thread_count; i++){thread_arr[i].join();}return 0;
}

Windows 写法

#include <iostream>
#include <windows.h>
using namespace std;DWORD WINAPI ThreadFun(LPVOID lpParamter)
{//转成整数地址,再对地址解引用取出整数cout << "one Windows thread "<< *(int*)lpParamter<<" !" << endl;return 0;
}int main()
{int thread_count = 10;HANDLE handleArr[10] = {NULL};//给线程函数传递的数据,用来标记线程int data[10] = { 1,2,3,4,5,6,7,8,9,10 };for (int i = 0; i < 10; i++){handleArr[i] = CreateThread(NULL, 0, ThreadFun, &data[i], 0, NULL);}//等待10个线程结束WaitForMultipleObjects(thread_count, handleArr, TRUE, INFINITE);for (int i = 0; i < thread_count; i++){CloseHandle(handleArr[i]);}return 0;
}

一次执行结果


 

另一次执行结果

Linux 写法

#include <pthread.h>
#include <iostream>
using namespace std;void* thread_fun(void *arg)
{cout << "one Linux thread "<< *(int*)arg<<" !" << endl;return 0;
}int main(void)
{int thread_count = 10;int id_array[10] = { 1,2,3,4,5,6,7,8,9,10 };pthread_t thread_arr[10] = { 0 };for (int i = 0; i < thread_count; ++i){pthread_create(&thread_arr[i], NULL, thread_fun, &id_array[i]);}//让线程运行直到结束for (int i = 0; i < thread_count; i++){pthread_join(thread_arr[i], NULL);}return 0;
}

一次执行结果

另一次的执行结果

再一次执行结果

相关文章:

创建10个线程并发执行(STL/Windows/Linux)

C并发编程入门 目录 STL 写法 #include <thread> #include <iostream> using namespace std;void thread_fun(int arg) {cout << "one STL thread " << arg << " !" << endl; }int main(void) {int thread_count 1…...

三、创建各个展示模块组件

简介 在文件 components 中创建轮播模块组件,引入App.vue展示。欢迎访问个人的简历网站预览效果 本章涉及修改与新增的文件:First.vue、Second.vue、Third.vue、Fourth.vue、Fifth.vue、App.vue、vite-env.d.ts、assets 一、修改vite-env.d.ts文件 /// <reference type…...

推荐一款程序员截图神器!

快来看一下程序员必备的一款截图工具 今天就来和大家说一下作为程序员必备截图神器&#xff0c;几乎每一个程序员都会设置开机自启&#xff0c;因为这个截图功能太太太好用了&#xff01;&#xff01;&#xff01;只要你在键盘上按下F1就可以轻松截取整个屏幕&#xff0c;然后…...

无涯教程-JavaScript - IMCSC函数

描述 IMCSC函数以x yi或x yj文本格式返回复数的余割。 复数的余割定义为正弦的倒数。即 余割(z) 1 /正弦(z) 语法 IMCSC (inumber)争论 Argument描述Required/OptionalInumberA complex number for which you want the cosecant.Required Notes Excel中的复数只是简单…...

Ubuntu22.04 LTS 显卡相关命令

第一部分查看驱显卡信息 一、查看显卡型号 # -i表示不区分大小写 lspci | grep -i nvidia # 必须安装好nvidia驱动 nvidia-smi -L 二、查看显卡驱动版本 cat /proc/driver/nvidia/version 三、查看CUDA、cuDNN版本 # 或者 nvcc -V&#xff08;两个显示的版本一致&#xf…...

《TCP/IP网络编程》阅读笔记--基于 TCP 的半关闭

目录 1--基于TCP的半关闭 1-1--TCP单方面完全断开的问题 1-2--shutdown()函数 1-3--半关闭的必要性 2--基于半关闭的文件传输程序 1--基于TCP的半关闭 1-1--TCP单方面完全断开的问题 Linux 系统中的 close 函数会将 TCP Socket 的连接完全断开&#xff0c;这意味着不能收…...

Rust的模块化

Rust的模块化要从Rust的入口文件谈起。 Rust的程序的入口文件有两个 如果程序类型是可执行应用&#xff0c;入口文件是main.rs&#xff1b;如果程序类型是库&#xff0c;入口文件是lib.rs&#xff1b; 入口文件中&#xff0c;必须声明本地模块&#xff0c;否则编译器在编译过…...

vmware设置桥接模式后ip设置

网络连接方式设置 找到虚拟机里机器的网络设置 左边是宿主机&#xff0c;右边是虚拟机&#xff0c;按照这个设置就可以上网了(IP指定一个没有占用的值&#xff0c;子网掩码和网关设置成一样的)就可以联网了。 over~~...

算法通关村第十七关:白银挑战-贪心高频问题

白银挑战-贪心高频问题 1. 区间问题 所有的区间问题&#xff0c;参考下面这张图 1.1 判断区间是否重叠 LeetCode252 https://leetcode.cn/problems/meeting-rooms/ 思路分析 因为一个人在同一时刻只能参加一个会议&#xff0c;因此题目的本质是判断是否存在重叠区间 将区…...

目标检测评估指标mAP:从Precision,Recall,到AP50-95

1. TP, FP, FN, TN True Positive 满足以下三个条件被看做是TP 1. 置信度大于阈值&#xff08;类别有阈值&#xff0c;IoU判断这个bouding box是否合适也有阈值&#xff09; 2. 预测类型与标签类型相匹配&#xff08;类别预测对了&#xff09; 3. 预测的Bouding Box和Ground …...

七大排序算法

目录 直接插入排序 希尔排序 直接选择排序 堆排序 冒泡排序 快速排序 快速排序优化 非递归实现快速排序 归并排序 非递归的归并排序 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作. 常见的排序算法有插入排序(直接插入…...

GitHub two-factor authentication

1. 介绍 登录 GitHub 官网&#xff0c;会提示要开启双因子认证。 但推荐的 APP 都是国外了&#xff0c;国内用不了。 可以使用 “腾讯身份验证器” 微信小程序。 2. 操作 开启双因子认证&#xff1a; 打开 “腾讯身份验证器” 微信小程序&#xff0c;扫描 GitHub 那个二维…...

un-app-手机号授权登录-授权框弹不出情况

前言 手机号授权是获取用户信息api停用之后&#xff0c;经常使用的api。但是此api也是有很多坑 手机号授权会出现调用不起来的情况&#xff0c;这是因为小程序后台没有进行微信认证导致的 手机号授权调用不起来-没有微信认证 来到小程序后台-设置-基本设置-下拉找到微信认证…...

手写Spring:第14章-自动扫描Bean对象注册

文章目录 一、目标&#xff1a;自动扫描Bean对象注册二、设计&#xff1a;自动扫描Bean对象注册三、实现&#xff1a;自动扫描Bean对象注册3.0 引入依赖3.1 工程结构3.2 Bean生命周期中自动加载包扫描注册Bean对象和设置占位符属性类图3.3 主力占位符配置3.4 定义拦截注解3.4.1…...

redux中间件的简单讲解

redux中间件 中间件的作用&#xff1a; 就是在 源数据 到 目标数据 中间做各种处理&#xff0c;有利于程序的可拓展性&#xff0c;通常情况下&#xff0c;一个中间件就是一个函数&#xff0c;且一个中间件最好只做一件事情 数据源 --------> 中间件 --------> 中间件 -…...

嵌入式开发-绪论

目录 一.什么是嵌入式 1.1硬件系统 1.2软件系统 二.嵌入式应用场景 2.1消费电子 2.1.1智能家居 2.1.2影音 2.1.3家用电器 2.1.4玩具游戏机 2.2通信领域 2.2.1对讲机 2.2.2手机 2.2.3卫星 2.2.4雷达 2.3控制领域 2.3.1机器人 2.3.2采集器PLC 2.4金融 2.4.1POS…...

大数据知识合集之预处理方法

数据预处理方法主要有&#xff1a; 数据清洗、数据集成、数据规约和数据变换。 1、数据清洗 数据清洗(data cleaning) &#xff1a;是通过填补缺失值、光滑噪声数据&#xff0c;平滑或删除离群点&#xff0c;纠正数据的不一致来达到清洗的目的。 缺失值处理 实际开发获取信…...

mysql(九)mysql主从复制

目录 前言概述提出问题主从复制的用途工作流程 主从复制的配置创建复制账号配置主库和从库启动主从复制从另一个服务器开始主从复制主从复制时推荐的配置sync_binloginnodb_flush_logs_at_trx_commitinnodb_support_xa1innodb_safe_binlog 主从复制的原理基于语句复制优点&…...

nodejs采集淘宝、天猫网商品详情数据以及解决_m_h5_tk令牌及sign签名验证(2023-09-09)

一、淘宝、天猫sign加密算法 淘宝、天猫对于h5的访问采用了和APP客户端不同的方式&#xff0c;由于在h5的js代码中保存appsercret具有较高的风险&#xff0c;mtop采用了随机分配令牌的方式&#xff0c;为每个访问端分配一个token&#xff0c;保存在用户的cookie中&#xff0c;通…...

虚拟机上部署K8S集群

虚拟机上部署K8S集群 安装VM Ware安装Docker安装K8S集群安装kubeadm使用kubeadm引导集群 安装VM Ware 参考&#xff1a;http://www.taodudu.cc/news/show-2034573.html?actiononClick 安装Docker 参考&#xff1a;https://www.yuque.com/leifengyang/oncloud/mbvigg#2ASxH …...

Python数据库编程与ORM

Python数据库编程与ORM一、数据库连接基础Python通过DB-API 2.0规范&#xff08;PEP 249&#xff09;统一了数据库接口。不同数据库使用不同的驱动&#xff0c;但API一致。import sqlite3# SQLite&#xff08;内置&#xff0c;无需安装&#xff09; conn sqlite3.connect(exam…...

基于数据科学的宠物性格分析:从行为量化到性格画像的工程实践

1. 项目概述与核心价值最近在逛GitHub的时候&#xff0c;发现了一个挺有意思的项目&#xff0c;叫petsonality。光看名字&#xff0c;你大概就能猜到它和“宠物”&#xff08;Pets&#xff09;以及“性格”&#xff08;Personality&#xff09;有关。没错&#xff0c;这是一个通…...

企业微信社群运营太耗人力?API自动化方案实战分享

通过 QiWe API RPA 自动化能力&#xff0c;实现企业微信社群从拉群、维护到触达的全流程自动化运营。社群运营在私域体系中很重要&#xff0c;但也是最“吃人力”的环节之一&#xff1a;拉群、邀请客户全靠人工群公告、活动通知重复发送群成员管理耗时且容易出错多个社群需要反…...

京东自动抢购工具完整指南:5分钟学会Python自动化购物

京东自动抢购工具完整指南&#xff1a;5分钟学会Python自动化购物 【免费下载链接】autobuy-jd 使用python语言的京东平台抢购脚本 项目地址: https://gitcode.com/gh_mirrors/au/autobuy-jd 还在为京东秒杀抢不到心仪商品而烦恼吗&#xff1f;想要在促销活动中轻松抢购…...

如何处理SQL递归层次结构更新_通过触发器维护父子关系

UPDATE父子路径未更新的主因是触发器中仅修改NEW.path而未递归更新后代path&#xff0c;且AFTER触发器中直接UPDATE同表会报错&#xff0c;需用临时表或存储过程中转&#xff0c;并同步维护level等衍生字段。UPDATE 时父子路径没更新&#xff0c;触发器里忘改 NEW.path递归结构…...

明日方舟游戏资源库:2000+高清素材的完整获取与应用指南

明日方舟游戏资源库&#xff1a;2000高清素材的完整获取与应用指南 【免费下载链接】ArknightsGameResource 明日方舟客户端素材 项目地址: https://gitcode.com/gh_mirrors/ar/ArknightsGameResource 还在为寻找高质量的明日方舟游戏素材而烦恼吗&#xff1f;无论是创作…...

品牌如何通过AI搜索优化构建长期影响力?GEO战略资产打造可持续竞争壁垒

摘要品牌通过AI搜索优化&#xff08;GEO&#xff09;构建长期影响力与权威认知&#xff0c;关键在于将其从短期获客技术升级为沉淀知识、构建AI信任机制的战略资产。核心路径是持续向AI模型提供高质量、结构化的品牌知识&#xff0c;使其成为AI的“可信信源”&#xff0c;并主动…...

科技晚报|2026年5月15日:AI 代理开始补协作、编排和护栏

科技晚报&#xff5c;2026年5月15日&#xff1a;AI 代理开始补协作、编排和护栏 一句话导读&#xff1a;今晚更值得看的&#xff0c;不是哪家模型榜单又变了&#xff0c;而是几家平台同时在补 AI 代理真正进生产前最缺的三块能力&#xff1a;跨 IDE 共享状态、团队级可观测&…...

2026年十大最佳小程序制作平台:革新数字化运营体验

小程序制作已成为企业数字化运营的重要抓手&#xff0c;2026年市场涌现多个高效平台。本文聚焦十大主流工具&#xff0c;涵盖从开发效率到生态构建的核心维度。好赞科技凭借地域精准算法领跑&#xff0c;亿点通科技以低代码开发见长&#xff0c;启帆数字突出定制化能力。各平台…...

Aseprite插件AseIcoExport:一键生成Windows与macOS应用图标

1. 项目概述&#xff1a;一个被低估的图标导出工具如果你是一个独立开发者&#xff0c;或者在一个小团队里负责UI/UX设计到前端实现的完整链路&#xff0c;那你一定对“图标导出”这个环节又爱又恨。爱的是&#xff0c;一个精心设计的图标集能让产品界面瞬间提升质感&#xff1…...