c++ 中多线程的使用
如果你的其他逻辑必须在线程 t1
和 t2
之后执行,但你又希望这些线程能够同时运行,你可以在主线程中使用 std::thread::detach
将线程分离,让它们在后台运行。这样,主线程不会等待这些线程的完成,而可以继续执行其他逻辑。
这里是一个示例:
#include <iostream>
#include <thread>
#include <ctime>
#include <chrono>
#include <windows.h>void test_thread_1()
{while (true) {std::cout << "test1" << std::endl;std::this_thread::sleep_for(std::chrono::seconds(5));}
}void test_thread_2()
{while (true) {std::cout << "test2" << std::endl;std::this_thread::sleep_for(std::chrono::seconds(3));}
}int main()
{std::cout << "Hello World!\n";std::thread t1(test_thread_1);std::thread t2(test_thread_2);// 分离线程,让它们在后台运行t1.detach();t2.detach();// 执行其他逻辑,这里不会等待t1和t2的完成// 等待用户输入或其他操作,确保程序不会立即退出std::cin.get();return 0;
}
这样,t1
和 t2
将在后台运行,主线程可以继续执行其他逻辑。请注意,一旦线程被分离,你就不能再使用 join
来等待它们的完成。但要注意,线程分离后,程序退出时这些线程可能仍在运行。确保在程序退出前适当地等待或结束这些线程。
相关文章:
c++ 中多线程的使用
如果你的其他逻辑必须在线程 t1 和 t2 之后执行,但你又希望这些线程能够同时运行,你可以在主线程中使用 std::thread::detach 将线程分离,让它们在后台运行。这样,主线程不会等待这些线程的完成,而可以继续执行其他逻辑…...

理解二叉树的遍历(算法村第七关白银挑战)
二叉树的前序遍历 144. 二叉树的前序遍历 - 力扣(LeetCode) 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 示例 1: 输入:root [1,null,2,3] 输出:[1,2,3]解 LeetCode以及面试中提供的方法可能…...

所有单片机使用的汇编语言是统一的吗?
所有单片机使用的汇编语言是统一的吗? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「单片机的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!&…...

C ++类
定义一个Person类,私有成员int age,string &name,定义一个Stu类,包含私有成员double *score,写出两个类的构造函数、析构函数、拷贝构造和拷贝赋值函数,完成对Person的运算符重载(算术运算符、条件运算…...

STM32疑难杂症
1.keil的奇怪问题 创建的数组分配内存到0x10000000地址的时候,数据总是莫名其妙的出现问题,取消勾选就正常了 stm32f407内部有一个CCM内存,这部分内存只能由内核控制,任何外设都不能够进行访问。这样问题就来了,如果使…...
GIT使用简介
Git 是一种版本控制系统,常用于团队协作开发和管理代码。下面是 Git 的基本使用方式: 安装 Git:首先,在你的计算机上安装 Git。你可以从 Git 官方网站(https://git-scm.com/)下载适合你操作系统的版本&…...
easycode 插件配置文件
easycode是一个idea生成文件的插件,以下是我的一个项目中配置信息,需要的可以拿走,保存成json文件导入即可 {"author" : "XXX","version" : "1.2.8","userSecure" : "","…...

elasticsearch系列四:集群常规运维
概述 在使用es中如果遇到了集群不可写入或者部分索引状态unassigned,明明写入了很多数据但是查不到等等系列问题该怎么办呢?咱们今天一起看下常用运维命令。 案例 起初我们es性能还跟得上,随着业务发展壮大,发现查询性能越来越不…...
6.6 会话与输入事件(三)
三,Pointer会话 3.1 Pointer会话及其属性 指针输入会话使用SCREEN_EVENT_POINTER类型创建,通常用于控制光标的形状和位置。 指针会话的SCREEN_PROPERTY_MODE属性未使用。但是,可以使用下面的会话属性配置指针会话: SCREEN_PROPERTY_ACCELERATION表示一组六个整数,表示x…...

【自动化测试总结】优点、场景、流程、项目人员构成
一、自动化测试的概念 以程序测试程序,以代码代替思维,以脚本的运行代替手工测试,可以大大提高工作测试的效率。 二、自动化测试的优点 1.回归测试更为方便,可靠。自动化测试最主要的任务和特点,特别是在程序修改比较…...

杨中科 ASP.NETCore Rest
什么是Rest RPC 1、Web API两种风格: 面向过程(RPC) 、面向REST (REST) 2、RPC:“控制器/操作方法“的形式把服务器端的代码当成方法去调用。把HTTP当成传输数据的通道,不关心HTTP谓词。通过QueryString请求报文体给服务器传递数据。状态码。比如/Persons/GetAll…...

RTU数据采集终端
在现代工业控制系统中,数据采集是一个至关重要的步骤。RTU(远程终端单元)作为一种常用的数据采集终端设备,不仅可以实现数据的采集和传输,还可以实现现场设备的远程监控和控制。 一、RTU数据采集终端的工作原理 RTU数据采集终端是一种将现场…...
双指针--- 数组元素的目标和
目录 数组元素的目标和思路:暴力做法思路:双指针做法: 代码: 原题链接 数组元素的目标和 给定两个升序排序的有序数组 A 和 B ,以及一个目标值 x 。 数组下标从 0 开始。 请你求出满足 A[i]B[j]x 的数对 (i,j) 。 数据保证有唯…...

你的网站或许不需要前端构建(二)
前一阵,有朋友问我,能否在不进行前端编译构建的情况下,用现代语法开发网站界面。 于是,就有了这篇文章中提到的方案。 写在前面 这篇文章,依旧不想讨论构建或不构建,哪一种方案对开发更友好,…...

flutter 使用adb 同时连接 多个模拟器
MUMU模拟器 MuMu模拟器官网_安卓12模拟器_网易手游模拟器 传统只需要 连接一个 默认命令是 默认端口是7555 adb connect 127.0.0.1:7555 但是需要同时连接调试多个模拟器的时候 就需要连接多个 这里可以使用自带的多开 多开后 使用 1 是对应多开的序号 这样就可以查看对…...

网络四元组
文章目录 网络四元组 今天我们来聊聊 网络四元组 网络四元组 四元组,简单理解就是在 TCP 协议中,去确定一个客户端连接的组成要素,它包括源 IP 地址、目标 IP 地址、源端口号、目标端口号。 正常情况下,我们对于网络通信的认识可…...
[实践总结] 限制正则表达式匹配次数/时间 防止DoS攻击
思路 1、优化正则表达式 2、正则表达式无法优化的话,可以考虑限制匹配次数,或者限制匹配时间 限制 匹配次数 public class CountedCharSequence implements CharSequence {private final CharSequence charSequence;private long count;public Counte…...
ffmpeg 5.0版本调试 ffmpeg 5.01 static版本
ffmpeg 5.0版本调试 写法:ffmpeg -rtsp_transport tcp -re -i rtsp://admin:BYTtest2019192.168.1.2:554/h264/ch1/main/av_stream -q 5 -f mpegts -fflags nobuffer -c:v mpeg1video -an -s 960x540 http://127.0.0.1:12345/demo本地写法 ffmpeg -timeout 5000000…...

应用在游戏机触摸屏中的触摸感应芯片
触屏游戏机的屏幕是由液晶屏和触控层组成的。触控层分为电容式触屏和电阻式触屏两种。电容式触屏是将悬空电极和屏幕玻璃上的电极组成静电场,当人体接近屏幕时,就会改变静电场分布,从而实现触摸的位置探测。而电阻式触屏则是利用玻璃上的两层电极之间通电形成一个电阻值,当手指…...

D-Link DES-108 交换机
D-Link DES-108 交换机 1. 百兆交换机 8 口References D-Link Corporation is a Taiwanese multinational networking equipment manufacturing corporation headquartered in Taipei, Taiwan. Taiwanese:adj. 台湾的 n. 台湾人 headquarter [hedkwɔ:tə]&#…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storms…...

[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG
TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码:HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...

ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]
报错信息:libc.so.6: cannot open shared object file: No such file or directory: #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...
全面解析数据库:从基础概念到前沿应用
在数字化时代,数据已成为企业和社会发展的核心资产,而数据库作为存储、管理和处理数据的关键工具,在各个领域发挥着举足轻重的作用。从电商平台的商品信息管理,到社交网络的用户数据存储,再到金融行业的交易记录处理&a…...
高防服务器价格高原因分析
高防服务器的价格较高,主要是由于其特殊的防御机制、硬件配置、运营维护等多方面的综合成本。以下从技术、资源和服务三个维度详细解析高防服务器昂贵的原因: 一、硬件与技术投入 大带宽需求 DDoS攻击通过占用大量带宽资源瘫痪目标服务器,因此…...