Я практиковал многопоточность и искал проблемы в Интернете. Но я не могу понять логику этого куска кода.
Код создает 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];
}