【c++】多线程大幅缩减时间

多线程在进行复杂运算时能够大量节约时间
提醒自己能够在多线程运算的时候一定要充分利用
在这里插入图片描述
能够省下2/3的时间
在这里插入图片描述
测试代码

#include<vector>
#include <iostream>
#include <thread>
using namespace cv;
using namespace std;
int result1 = 0 ;
bool thread_flag1 = false;
bool thread_flag2 = false;
bool thread_flag3 = false;
bool thread_flag4 = false;void add_fn (int time)
{int result = 0;for (int i = 0 ;i < 10000000 ;i++){result +=  i ;}  // cout << "the " << time  <<"time " << result <<endl;if (time == 1 ) thread_flag1 = true;else if (time == 2 ) thread_flag2 = true;else if (time == 3 ) thread_flag3 = true;else thread_flag4 = true;// return result ;
}
void check_thread()
{auto beforeTime = std::chrono::steady_clock::now();while(1){if(thread_flag1&&thread_flag2&&thread_flag3&&thread_flag4){auto afterTime = std::chrono::steady_clock::now();double duration_microsecond = std::chrono::duration<double, std::micro>(afterTime - beforeTime).count();cout << "threads take times"<< duration_microsecond <<"microsecond" <<endl;break;}}}int main()
{thread check(check_thread);check.detach();for (int i = 0;i < 4 ; i++){std::thread t(add_fn , i);t.detach();}auto beforeTime = std::chrono::steady_clock::now();for (int i = 0;i < 4 ; i++){add_fn(i);}auto afterTime = std::chrono::steady_clock::now();double duration_microsecond = std::chrono::duration<double, std::micro>(afterTime - beforeTime).count();cout << "all take times"<< duration_microsecond <<"microsecond" <<endl;while(1){}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/175362.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【TiDB】TiDB离线方式部署

目录 1 下载TiDB离线组件包 2 安装TiUP 3 合并离线包 4 TIDB 软件和硬件环境建议配置 5 TiDB环境与系统配置检查 6 生成集群初始化配置文件模板 7 执行部署命令 1 检查就能存在的潜在风险 2 手动修复风险 3 部署 TiDB 集群 8 查看TIUP管理的集群情况 9 检查部署的…

【jupyter notebook中插件 nbextensions 安装失败分析与解决方法】

文章目录 问题描述分析与解决总结 问题描述 一开始在安装 notebook 中的插件 nbextensions 时根本没有注意到版本的适配问题&#xff0c;都是进行默认的安装&#xff0c;结果安装是最新版本的 notebook7.x&#xff0c;恰好 notebook7.x 版本不再适应插件 nbextensions&#xf…

Java八股文面试全套真题【含答案】- SpringMVC篇

以下是一些关于Spring MVC语言的经典面试题以及它们的答案&#xff1a; 什么是Spring MVC框架&#xff1f;它的特点是什么&#xff1f; Spring MVC是基于Java的一种Web应用框架&#xff0c;用于开发基于MVC&#xff08;模型-视图-控制器&#xff09;模式的Web应用程序。它的特…

Oracle 内置sql函数大全

F.1字符函数——返回字符值 这些函数全都接收的是字符族类型的参数(CHR除外)并且返回字符值.除了特别说明的之外,这些函数大部分返回VARCHAR2类型的数值.字符函数的返回类型所受的限制和基本数据库类型所受的限制是相同的,比如: VARCHAR2数值被限制为2000字符(ORACLE 8中为400…

Kafka介绍(一)

什么是kafka Apache Kafka 是一个开源分布式事件流平台&#xff08;通俗点说其实就是一个类似中介的东西&#xff0c;房东将信息放入中介&#xff0c;客户咨询中介或者中介推送信息给咨询过的客户&#xff0c;获取消息&#xff09;&#xff0c;它的核心能力有&#xff0c;高吞吐…

使用Arthas排查性能问题

Arthas 是一款线上监控诊断产品&#xff0c;通过全局视角实时查看应用 load、内存、gc、线程的状态信息&#xff0c;并能在不修改应用代码的情况下&#xff0c;对业务问题进行诊断&#xff0c;包括查看方法调用的出入参、异常&#xff0c;监测方法执行耗时&#xff0c;类加载信…

AttributeError: ‘list‘ object has no attribute ‘size‘解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

CSR证书开发详解

文章目录 一、CSR证书基本概念二、CSR证书和服务器证书区别三、CSR证书解析源码 一、CSR证书基本概念 CSR&#xff08;Certificate Signing Request&#xff09;证书签名请求是一种包含公钥及其相关信息的文件&#xff0c;用于向证书颁发机构&#xff08;CA&#xff09;请求数…

Open Feign 源码解析(四) --- 请求对象构造(上)

Open Feign 源码解析四 请求对象的构造&#xff08;上&#xff09; 源码前三篇文章写了这个图的过程 源码前三篇文章的内容归纳起来就是讲了这样的问题&#xff1a; 如何把接口转换为具有发送http请求能力的feign client对象以及如何整合到Spring容器中&#xff1f; 如何构造…

普通表计读数开发思路

一、普通表计类型介绍&#x1f349; 常见的普通表计有SF6&#xff0c;压力表&#xff0c;油位表&#xff08;指针类&#xff09;等。 图1&#xff1a;( 压力表) 图2&#xff1a;&#xff08;油位表-指针类&#xff09; 图3&#xff1a;&#xff08;SF6表&#xff09; 图4:&a…

linux 磁盘管理、分区管理常用命令

文章目录 基础命令挂载新硬盘/分区添加内存交换分区swaplvm分区管理模式 基础命令 查看目录文件大小 du -sh /backup du -sh /backup/* du -sh *查看磁盘挂载信息 df -lhT查看某个目录挂载在哪个分区&#xff0c;以及分区的磁盘使用情况 df [目录] #例如&#xff1a;df /ho…

对面积的曲面积分@第一类曲面积分

文章目录 对面积的曲面积分定义曲面积分存在性 使用面积分描述问题 性质计算闭曲面上的积分公式总结和应用例 例 对面积的曲面积分 和对弧长的曲线积分的定义相仿 对面积的曲面积分对应的一个问题模型式曲面质量 m m m lim ⁡ λ → 0 ∑ i 1 n μ ( ξ i , η i ) Δ s i \l…

(二) Windows 下 Sublime Text 3 安装离线插件 Anaconda

1 下载 Sublime Text 3 免安装版 Download - Sublime Text 2 下载 Package Control&#xff0c;放到 Sublime Text Build 3211\Data\Installed Packages 目录下。 Installation - Package Control 3 页面搜索 anaconda anaconda - Search - Package Control Anaconda - Pac…

Spine的BoundingBoxAttachment碰撞检测

引擎版本 —— cocos creator 2.3.4 游戏代码&#xff1a; //优先初始化的时候&#xff0c;获取到cc.PhysicsPolygonColliderthis._poly this.dragonFooAni.node.getComponent(cc.PhysicsPolygonCollider);//下面的修改顶点位置的方法可以在update里面去执行//获取骨骼动画上…

vue3通过provide和inject实现多层级组件通信

父组件 <template><div><h1>我是父组件 {{num}}</h1><hr><child></child></div> </template><script setup> import child from ./child.vue; import { ref,provide } from vue; let num ref(520) provide(pare…

【计算机_软考_真题】2010年系统架构设计师考试——设计模式试题部分

编程中常见的技术难题有哪些&#xff1f; 2010年系统架构设计师考试在2009年的基础上增加了一道设计模式考题&#xff0c;Sunny友情建议微笑&#xff1a;大家可以先做做这些试题&#xff0c;看是否能够正确解答&#xff0c;如果在解答的同时还能够拿出具体的设计和实现方案&am…

kafka的详细安装部署

简介&#xff1a; Kafka是一个分布式流处理平台&#xff0c;主要用于处理高吞吐量的实时数据流。Kafka最初由LinkedIn公司开发&#xff0c;现在由Apache Software Foundation维护和开发。 Kafka的核心是一个分布式发布-订阅消息系统&#xff0c;它可以处理大量的消息流&#…

PHP TCP服务端监听端口接收客户端RFID网络读卡器上传的读卡数据

本示例使用设备&#xff1a;WIFI/TCP/UDP/HTTP协议RFID液显网络读卡器可二次开发语音播报POE-淘宝网 (taobao.com) <?php header("content-type:text/html;charsetGBK");set_time_limit(0); $port39169; //监听端口if(($socket socket_create(AF_INET, SOCK…

共享模型之不可变

前言 该文章后续还需要进行修改&#xff01;&#xff01; 不可变的解释是对象属性不可以更改。 在多线程下&#xff0c;格式转化使用SimpleDateFormat可能会报错。这是因为线程之间互相影响导致。 public class test {public static void main(String[] args) {SimpleDateFo…

Java进行国密SM2加密和解密实现

前言 本文讲解java进行国密sm2加密和解密实现。 国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。 SM2介绍 SM2为非对称加密,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM…