c++ 多线程, 处理数据转换

本文通过示例代码详细介绍了如何在C++中利用多线程进行数据转换操作,提升程序执行效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

示例代码,

#include <iostream>
#include <future>
#include <thread>
#include <vector>


template <typename T, typename R>
struct Task{
    typedef  std::vector<T>     value_source;
    typedef  std::vector<R>     value_result;

    Task(uint32_t numbers = 4):m_thread(numbers){

    }

    template <typename CONVERT>
    void go_task(const value_source &source, value_result &result, CONVERT conver_func){
        std::vector<std::vector<T>>  split_source(m_thread);
        std::vector<std::vector<R>>  split_result(m_thread);

        auto one_size = source.size() / m_thread;
        auto sp_size = source.size() % one_size;        //find surplus
        std::vector<std::future<value_result>> vec_ff;


        for(int i = 0; i < m_thread; i++){
            if(i == m_thread - 1 && sp_size != 0){  //add
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值