Может кто-нибудь объяснить мне логику этого кода? - PullRequest
0 голосов
/ 05 ноября 2019

Я практиковал многопоточность и искал проблемы в Интернете. Но я не могу понять логику этого куска кода.

Код создает 4 потока и суммирует 1/4 часть массива. Я знаю, как создавать темы, но не могу понять функцию суммы.

#include <pthread.h> 
#include <stdio.h>
// size of array 
#define MAX 100 

// maximum number of threads 
#define MAX_THREAD 4 

int fill_array[100];
int sum[4] = { 0 }; 
int part = 0; 

void* sum_array(void* arg) 
{ 
    int i=0;
    // Each thread computes sum of 1/4th of array 
    int thread_part = part++; 

    for ( i = thread_part * (MAX / 4); i < (thread_part + 1) * (MAX / 4); i++) 
        sum[thread_part] += fill_array[i]; 
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...