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

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

C++并发编程入门 目录

STL 写法

#include <thread>
#include <iostream>
using namespace std;void thread_fun1(void)
{cout << "one STL thread 1!" << endl;
}void thread_fun2(void)
{cout << "one STL thread 2!" << endl;
}int main(void)
{std::thread thread1(thread_fun1);std::thread thread2(thread_fun2);thread1.join();thread2.join();return 0;
}

Windows 写法

#include <iostream>
#include <windows.h>
using namespace std;DWORD WINAPI ThreadFun1(LPVOID lpParamter)
{cout << "one Windows thread 1!" << endl;return 0;
}
DWORD WINAPI ThreadFun2(LPVOID lpParamter)
{cout << "one Windows thread 2!" << endl;return 0;
}int main()
{HANDLE hThread1 = CreateThread(NULL, 0, ThreadFun1, NULL, 0, NULL);HANDLE hThread2 = CreateThread(NULL, 0, ThreadFun2, NULL, 0, NULL);HANDLE handleArr[] = { hThread1 , hThread2 };//等待两个线程结束WaitForMultipleObjects(2, handleArr, TRUE, INFINITE);CloseHandle(hThread1);CloseHandle(hThread2);return 0;
}

三次执行结果

每个线程都打印一句话

第一个线程和第二个线程交叉占用控制台

居然是先执行的第二个线程

Linux 写法

#include <pthread.h>
#include <iostream>
using namespace std;void* thread_fun1(void *arg)
{cout << "one Linux thread 1!" << endl;return 0;
}void* thread_fun2(void *arg)
{cout << "one Linux thread 2!" << endl;return 0;
}int main(void)
{pthread_t thread_id1;pthread_t thread_id2;pthread_create(&thread_id1, NULL, thread_fun1, NULL);pthread_create(&thread_id2, NULL, thread_fun2, NULL);//让线程运行直到结束pthread_join(thread_id1, NULL);pthread_join(thread_id2, NULL);return 0;
}

一次执行结果

另一次执行结果

相关文章:

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

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

Redis可以干什么

Redis可以做什么&#xff1f; 缓存 Redis作为一款高性能的缓存数据库&#xff0c;能够将常用的数据存储在内存中&#xff0c;以提高读写效率。它支持多种数据结构&#xff0c;如字符串、哈希表、列表、集合等&#xff0c;让你可以根据业务需求选择合适的数据结构进行缓存。 …...

R语言+Meta分析;论文新方向

Meta分析是针对某一科研问题&#xff0c;根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法&#xff0c;对来源不同的研究成果进行收集、合并及定量统计分析的方法&#xff0c;最早出现于“循证医学”&#xff0c;现已广泛应用于农林生态&#xff0c;资源环境等方面。…...

实战系列(二)| MybatisPlus详细介绍,包含代码详解

目录 1. MybatisPlus 的基本功能2. 基本用法3. MybatisPlus 的配置4. MybatisPlus 的实体类、Mapper 接口、Service 类和 Controller 类 MybatisPlus 是一个功能强大的 MyBatis 增强工具&#xff0c;它提供了丰富的特性来简化操作数据库的代码。它主要用于简化 JDBC 操作&#…...

横向对比 npm、pnpm、tnpm、yarn 优缺点

前端工程化是现代Web开发中不可或缺的一环&#xff0c;它的出现极大地提升了前端开发的效率和质量。 在过去&#xff0c;前端开发依赖于手动管理文件和依赖&#xff0c;这导致了许多问题&#xff0c;如版本冲突、依赖混乱和构建繁琐等。而今&#xff0c;随着众多前端工程化工具…...

安防监控/视频汇聚/云存储/AI智能视频融合平台页面新增地图展示功能

AI智能分析网关包含有20多种算法&#xff0c;包括人脸、人体、车辆、车牌、行为分析、烟火、入侵、聚集、安全帽、反光衣等等&#xff0c;可应用在安全生产、通用园区、智慧食安、智慧城管、智慧煤矿等场景中。将网关硬件结合我们的视频汇聚/安防监控/视频融合平台EasyCVR一起使…...

机器人中的数值优化(九)——拟牛顿方法(下)、BB方法

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考&#xff0c;主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等&#xff0c;本系列文章篇数较多&#xff0c;不定期更新&#xff0c;上半部分介绍无约束优化&#xff0c;…...

java 从resource下载excel打不开

GetMapping("/download/template")public void template(HttpServletResponse response) throws IOException {ServletOutputStream outputStream response.getOutputStream();InputStream inputStream null;try {//从resource获取excel文件流inputStream getClas…...

NS2安装及入门实例——(ns2.35 / Ubuntu20.04)

文章目录 一、ns2安装1、更新系统源2、准备工作3、下载安装包4、安装5、问题① 问题1② 问题2③ 问题3 6、安装成功7、环境配置 二、nam安装1、安装2、问题 三、实例 一、ns2安装 1、更新系统源 sudo apt-get update sudo apt-get upgrade2、准备工作 sudo apt-get install …...

平面设计的三大基本元素 优漫动游

平面设计需要美术基础&#xff0c;有美术基础的新人往往能更快完成平面设计岗的转行&#xff0c;在专业培训机构内讲师授课时也会从平面设计的基础——三大基本元素开始。今天就跟大家具体介绍一下平面设计的三大基本元素&#xff0c;让大家知道到底都有哪些。 平面设计的三…...

【电子取证篇】汽车取证检验标准

【电子取证篇】汽车取证检验标准 汽车取证鉴定可能涉及的测试/测量方法—【蘇小沐】 GA/T 976-2012《电子数据法庭科学鉴定通用方法》&#xff1b; GA/T 1998-2022《汽车车载电子数据提取技术规范》&#xff1b; GA/T 1999.2-2022《道路交通事故车辆速度鉴定方法 第2部分&…...

【元宇宙】游戏应用商城对元宇宙的影响

游戏行业不仅是创意设计原则的信息源&#xff0c;还是构建“下一代互联网”的基础技术。它也是元宇宙的经济活动先例。 究竟为什么会认为应用商城设置的30%佣金将导致元宇宙“无法实现”呢&#xff1f;有三个核心原因。首先&#xff0c;应用商城阻止了企业对元宇宙的投资&…...

win10-docker-mysql镜像安装运行基础

win10-docker-mysql镜像安装运行基础 文章目录 win10-docker-mysql镜像安装运行基础一、搜索可用镜像1.1 查询mysql镜像1.2 确定镜像版本号 二、运行mysql容器2.1 进入mysql2.2 测试mysql是否正常 三、将mysql数据存储目录映射到宿主机做持久化 一、搜索可用镜像 1.1 查询mysq…...

VirtualBox7+Ubuntu22集群规划

1. 目的: 新入手了一台小主机&#xff08;8核 / Intel(R) Xeon(R) W-10885M CPU 2.40GHz 2.40 GHz, 16vCpu / 64G RAM / 系统类型 64 位操作系统, 基于 x64 的处理器&#xff09;&#xff0c;原装了一套Win11专业版&#xff0c;打算用VirtualBox 虚拟一个集群。 2. …...

标绘一张图系统

一、概况 智慧武装三维电子沙盘是一种结合了智能技术和虚拟现实技术的沙盘模拟系统。它通过使用三维投影技术和交互式触控技术&#xff0c;将实际战场的地形、建筑物、人员等元素以虚拟的形式呈现在沙盘上。 智慧武装三维电子沙盘可以实时获取各种战场数据&#xff0c;并通过智…...

菜鸟教程《Python 3 教程》笔记(17):输入和输出

菜鸟教程《Python 3 教程》笔记&#xff08;17&#xff09; 17 输入和输出17.1 读取键盘输入17.2 读和写文件17.3 文件对象的方法17.3.1 read()、readline()、readlines() 17.3.2 tell()17.3.3 seek()17.4 pickle 模块&#xff08;没看懂&#xff09; 笔记带有个人侧重点&#…...

【动态规划】面试题 08.01. 三步问题

Halo&#xff0c;这里是Ppeua。平时主要更新C&#xff0c;数据结构算法&#xff0c;Linux与ROS…感兴趣就关注我bua&#xff01; 文章目录 0. 题目解析1. 算法原理1.1 状态表示1.2 状态转移方程1.3初始化1.4 填表顺序1.5 返回值 2.算法代码 &#x1f427; 本篇是整个动态规划的…...

mac常见问题(三) macbook键盘溅上水怎么办?

多朋友在使用mac的时候难免会发生一些小意外&#xff0c;例如说本期要为大家说的macbook键盘溅上水或者其他的液体怎么办&#xff1f;不清楚的同学赶快get这项技能吧&#xff01; 如果你不小心给你的MacBook键盘上溅了水或者其他液体&#xff0c;你需要超级快的把表面的液体清理…...

安全测试目录内容合集

基础知识 安全测试基础知识 安全测试-django防御安全策略 HTTP工作原理 靶场DVWA 安全测试网站-DWVA下载安装启动 DVWA-Command Injection DVWA-5.File upload 文件上传漏洞 DVWA-9.Weak Session IDs DVWA-XSS (Stored) DVWA-10.XSS (DOM)...

数据结构和算法(1):开始

算法概述 所谓算法&#xff0c;即特定计算模型下&#xff0c;旨在解决特定问题的指令序列 输入 待处理的信息&#xff08;问题&#xff09; 输出 经处理的信息&#xff08;答案&#xff09; 正确性 的确可以解决指定的问题 确定性 任一算法都可以描述为一个由基本操作组成的序…...

别再让高码流RTSP视频卡住你的OpenCV项目:一个Python异步队列的实战优化

高码流RTSP视频处理的Python异步队列优化实战 当你的OpenCV项目遇到高码流RTSP视频卡顿、解码错误甚至程序崩溃时&#xff0c;那种挫败感我深有体会。去年在开发一个智能监控系统时&#xff0c;4M以上码流的RTSP视频让我们的算法频繁崩溃&#xff0c;团队花了整整两周才找到稳定…...

通过观察nRF52服务的回调,解释两种回调函数的区别,以及为什么看不到他们回调函数的调用

一、nRF52的两种回调我们在服务初始化的时候&#xff0c;会有回调函数的传入这个回调到底是干什么的&#xff1f;简单来说&#xff1a; 它是你告诉服务&#xff1a;“当这个服务发生重要事情时&#xff0c;请通知我&#xff08;调用我的这个函数&#xff09;”。具体作用&#…...

NumPy入门必做50道练习题,Python 提高教程之numpy,Python 学习者必须掌握

NumPy 从入门到完全入门的系统性练习题集&#xff0c;覆盖全部核心基础知识点&#xff0c;每道题均含&#xff1a; ✅ 题目编号与难度标识&#xff08;★☆☆ 到 ★★★&#xff09; ✅ 完整可运行代码&#xff08;Python 3.8&#xff0c;Clash Meta 风格 YAML 注释风格&#x…...

避坑指南:用微PE工具箱制作万能启动盘时容易忽略的5个细节(附服务器专用插件包)

避坑指南&#xff1a;用微PE工具箱制作万能启动盘时容易忽略的5个细节&#xff08;附服务器专用插件包&#xff09; 运维工程师们常说&#xff1a;"PE启动盘是服务器救急的瑞士军刀。"但当这把"军刀"在关键时刻掉链子时&#xff0c;往往是因为制作过程中那…...

LeetCode(15/100)

数组中除当前数外所有数乘积。不许用除法&#xff0c;时间复杂度O(N)&#xff0c;左右指针求前缀乘积和后缀乘积&#xff0c;还能u空间。 class Solution {public int[] productExceptSelf(int[] nums) {int len nums.length;// L 和 R 分别表示左右两侧的乘积列表int[] L ne…...

线性时不变系统的容错模型预测控制与同态加密融合研究 —— 以连续搅拌式反应器为例(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

OpenClaw技能开发入门:为千问3.5-27B定制PDF解析模块

OpenClaw技能开发入门&#xff1a;为千问3.5-27B定制PDF解析模块 1. 为什么需要自定义PDF解析技能 去年我在处理一批学术论文时&#xff0c;发现OpenClaw内置的文本处理能力对复杂PDF支持有限。当需要从几百页的技术文档中提取特定章节时&#xff0c;要么手动复制粘贴&#x…...

ALIGN vs CLIP:哪个更适合你的多模态项目?详细对比与选型指南

ALIGN vs CLIP&#xff1a;多模态模型选型实战指南 当你在构建一个需要同时理解图像和文本的AI系统时&#xff0c;ALIGN和CLIP这两个名字一定会频繁出现。作为2023年最炙手可热的多模态模型&#xff0c;它们都能将视觉和语言映射到同一个语义空间&#xff0c;但设计哲学和适用场…...

uniapp H5项目自定义favicon图标实战指南

1. 为什么需要自定义favicon图标 当你用uniapp开发H5项目时&#xff0c;有没有注意到浏览器标签页上那个默认的灰色地球图标&#xff1f;这个不起眼的小图标其实有个专业名称叫favicon&#xff0c;它就像是你网站的"身份证照片"。想象一下&#xff0c;用户同时打开十…...

考虑一次调频与二次调频及机组差异化特性的风光水火储双目标动态调度研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...