使用std :: thread将多个线程的数组组合在一起使用std :: thread

Posted Overboom

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用std :: thread将多个线程的数组组合在一起使用std :: thread相关的知识,希望对你有一定的参考价值。

#include <iostream> 
#include <vector> 
#include <thread> 
#include <mutex> 
#include <cassert> 
#include "boost/multi_array.hpp" 

std::vector<float> Array; 
std::mutex Array_mutex; 

void Summation(int sample_size) 
 
    std::lock_guard<std::mutex> guard(Array_mutex); 
    for(int i = 0; i < sample_size; i++) 
     
     Array.push_back(rand() % 10 + 1); 
     
    std::cout << "\\n"; 
 

int main(int argc, const char * argv[])  
    int sample_size = 10; 
    int Num_Threads = 2; 
    int number_count = sample_size/Num_Threads; 
    srand(time(NULL)); 
    std::vector<std::thread> Threads; 
    for(int i = 0; i < Num_Threads; i++) 
     
     Threads.push_back(std::thread(Summation,number_count)); 
     

    for(int i = 0; i < Num_Threads; i++) 
     
     Threads[i].join(); 
     

    // - I would like to combine the arrays produced from each thread into a 
    // single array, where each element in the final array is the sum of 
    // the identical element in the array from each thread 

    // i.e. Element 1(final) = Element 1(thread 1) + Element 1(thread2) 
    //  Element 2(final) = Element 2(thread 1) + Element 2(thread2) 
    //  Element 3(final) = Element 3(thread 1) + Element 3(thread2) 

    return 0; 
 

以上是关于使用std :: thread将多个线程的数组组合在一起使用std :: thread的主要内容,如果未能解决你的问题,请参考以下文章

多进程 MPI 与多线程 std::thread 性能

如何使用 std::thread C++ 生成多个调用相同函数的线程 [关闭]

将 CSocket 传递给 std::thread

为线程函数c ++ 11获取多个参数

多个 std::threads 和主程序执行出现问题

将 std::thread 与 std::mutex 一起使用