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

news2024/11/24 11:57:54

多线程在进行复杂运算时能够大量节约时间
提醒自己能够在多线程运算的时候一定要充分利用
在这里插入图片描述
能够省下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.coloradmin.cn/o/1258701.html

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

相关文章

希亦和海尔内衣洗衣机哪款好用点?性价比小型洗衣机测评

在最近的这两年以来&#xff0c;专门用于清洗我们内衣裤等贴身衣物的小家电——内衣洗衣机&#xff0c;非常的火爆&#xff01;如今越来越多的人开始使用上了内衣洗衣机&#xff0c;不仅省时而且还省力。但是由于市面上内衣洗衣机产品众多&#xff0c;于是我挑选了希亦和海尔两…

overleaf上武大毕业论文开题报告本地参考文献编译报错

overleaf上武大毕业论文开题报告本地参考文献编译报错 具体报错内容 BibTeX subsystem: /tmp/biber_tmp_FDeB/b2e90af6edbf2e41914433623737dc27_16.utf8, line 4989, syntax error: found “spremont:1979”, expected “,” 解决方案 1.将参考文献编译工具设置为biber …

多段图的最短路径【java】

题目描述&#xff1a; [实验题目1] 设图G(V, E)是一个带权有向图&#xff0c;如果把顶点集合V划分成k个互不相交的子集Vi (2≤k≤n, 1≤i≤k)&#xff0c;使得E中的任何一条边(u, v)&#xff0c;必有u∈Vi&#xff0c;v∈Vim (1≤i≤k, 1&#xff1c;im≤k)&#xff0c;则称图…

接口测试工具(Jmeter)必学技巧

安装 使用JMeter的前提需要安装JDK&#xff0c;需要JDK1.7以上版本目前在用的是JMeter5.2版本&#xff0c;大家可自行下载解压使用 运行 进入解压路径如E: \apache-jmeter-5.2\bin&#xff0c;双击jmeter.bat启动运行 启动后默认为英文版本&#xff0c;可通过Options – Cho…

案例034:基于微信小程序的课堂助手系统

文末获取源码 开发语言&#xff1a;PHP 框架&#xff1a;PHP 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序运行软件&#xff1a;微信开…

SAP MPN物料简介

MPN物料-Manufacturer Part Number (MPN) 我们将把它简称为MPN物料。所谓制造商零件号&#xff0c;指的是以制造商&#xff08;注意不是供应商&#xff09;作为区分依据&#xff0c;为事实上的同一种物料定义不同的物料号。 我们在业务逻辑中&#xff0c;一物一码是基本的业务…

FLASK博客系列5——模板之从天而降

我们啰啰嗦嗦讲了4篇&#xff0c;都是在调接口&#xff0c;啥时候能看到漂亮的页面呢&#xff1f;别急&#xff0c;今天我们就来实现。 来我们先来实现一个简单的页面。不多说&#xff0c;上代码。 app.route(/) def index():user {username: clannadhh}return <html>&…

职场经验:Python自动化生成漂亮的测试报告【干货】

运用Python的Unittest、数据驱动测试&#xff08;DDT&#xff09;、Excel、Jinja2和HTML技术&#xff0c;构建一个能够自动生成精美可视化测试报告的自动化测试框架 思路流程 封装读取数据&#xff0c;让所有数据都能够再excel中填写&#xff0c;不再填写任何一行逻辑代码 通…

C++算法 —— 贪心(5)

文章目录 1、合并区间2、无重叠区间3、用最少的箭引爆气球4、整数替换5、俄罗斯套娃信封6、可被3整除的最大和7、距离相等的条形码8、重构字符串 1、合并区间 56. 合并区间 在合并区间时&#xff0c;得先排序一下&#xff0c;方便判断。方便可以按照左或者右端点排序。很多问题…

StyleGAN 使用指南:生成更逼真的图片

StyleGAN 使用指南&#xff1a;生成更逼真的图片 提出背景&#xff1a;特征纠缠StyleGAN-v1 网络结构映射网络 Mapping network f生成网络 Synthesis network g训练技巧样式混合 mixing regularization截断 Truncation Trick 评估指标路径长度 Perceptual path length解耦&…

2019年3月14日 Go生态洞察:Go开发者网络新动态

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

洗眼镜的机器有哪些?眼镜超声波清洗机哪家强?眼镜清洗机推荐

由于自己经常佩戴眼镜&#xff0c;所以个人对清洗眼镜的要求害死挺高的&#xff0c;一周最少是需要清洗一次的&#xff0c;不然会感觉眼镜上会有非常多的细菌藏匿在污垢中&#xff0c;往往这些细菌没有清洁到位就会导致脸上长痘长螨虫的问题&#xff0c;所以看到这里的朋友们一…

灵茶 - 2023 - 11 - 27

B. Minimum Ternary String 链接 : Problem - 1009B - Codeforces 思路 : 10 , 12 可以互相交换&#xff0c;就代表着1可以出现在任何地方&#xff0c;要追求字典序最小&#xff0c;那么应该将所有的1放在哪里呢 ? 应该放在第一个2前面&#xff0c;要注意的是 : 没有2的…

C++基础 -3- 匿名空间,命名空间跨文件使用

匿名空间仅限本文件使用 创建匿名空间格式(图片代码段呈现) namespace {int a100; }命名空间的跨文件使用 namespace rlxy {int a100; }namespace rlxy {extern int a; }

深度学习之循环神经网络

视频链接&#xff1a;6 循环神经网络_哔哩哔哩_bilibili 给神经网络增加记忆能力 对全连接层而言&#xff0c;输入输出的维数固定&#xff0c;因此无法处理序列信息 对卷积层而言&#xff0c;因为卷积核的参数是共享的&#xff0c;所以卷积操作与序列的长度无关。但是因为卷积…

可以媲美MidJourney,但是开源和免费的超强AI绘画-fooocus

现在的AI技术很火&#xff0c;这一新兴领域的发展给艺术创作带来了全新的可能性&#xff0c;AI绘画的应用也十分的广泛。我自己见到的就有运用在模特穿衣服身上的&#xff0c;化妆品广告图生成的等等&#xff0c;比如MidJourney 和stable diffusion 等 AI绘画程序已经很成熟了&…

011 OpenCV warpAffine

目录 一、环境 二、warpAffine原理 三、完整代码 一、环境 本文使用环境为&#xff1a; Windows10Python 3.9.17opencv-python 4.8.0.74 二、warpAffine原理 warpAffine是OpenCV库中的一个函数&#xff0c;它用于执行二维仿射变换。这个函数接受一个输入图像和变换矩阵&…

【Linux 静态IP配置】

静态IP配置 1.NAT模式设置2.设置静态ip3.重启网络4.查看ip 1.NAT模式设置 首先设置虚拟机中NAT模式的选项&#xff0c;打开VMware&#xff0c;点击“编辑”下的“虚拟网络编辑器”&#xff0c;设置NAT参数 注意&#xff1a; VMware Network Adapter VMnet8保证是启用状态 …

针对近期大面积出现的小程序新用户登录不正常处理办法

原因是微信小程序需要更新协议规则 操作方法如下&#xff1a; 提交之后等待通过

麒麟信安联合牵头 | 国家关键领域信创行业产教融合共同体成立大会暨欧拉人才发展论坛盛大召开

11月24日&#xff0c;国家关键领域信创行业产教融合共同体成立大会暨欧拉人才发展论坛在长沙职业技术学院盛大召开。大会由湖南省教育厅、湖南省工业和信息化厅、长沙市人民政府指导&#xff0c;麒麟信安、长沙理工大学、长沙职业技术学院三家牵头单位主办&#xff0c;湖南欧拉…