将for循环放置在多线程上进行优化

这段C++代码展示了如何使用多线程技术将一个for循环分解到多个线程中,以提高循环执行速度。通过`std::thread`和线程函数`myTask`,实现了并行计算的简化演示。
摘要由CSDN通过智能技术生成
#include <iostream>
#include <thread>
#include <vector>
using namespace std;
const int NUM_THREADS = 4;//4线程
const int MAX_COUNT = 80;//80次循环

int add(int a, int b) {

    return a+b;
}//随便写的
void myTask(int thread_id) {
    int start = thread_id * (MAX_COUNT / NUM_THREADS);
    int end = (thread_id + 1) * (MAX_COUNT / NUM_THREADS);//平均分一下任务
   
//线程里面要做的事情
int c=0;int d=1;
   for(int i=0;i<100;i++){


    for (int i = start; i < end; i++) {
        d++;
        int f= add(9,9);
        printf("%d\n", f);

    }

       c=add(5,6)+d;
   }
}//起线程

int main() {
    std::vector<std::thread> threads;

    for (int t = 0; t < NUM_THREADS; t++) {
        threads.emplace_back(myTask, t);
    }

    for (auto& t : threads) {
        t.join();
    }//调用

    return 0;
}

本段代码作为一种优化for循环的简单demo,可以将for循环放在多个线程上进行处理可以提高for循环的运行速度

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值