ВУЗ:
Составители:
73
#include <stdio.h>
#include <unistd.h>
#include <math.h>
#define SIZE_I 2
#define SIZE_J 2
float X[SIZE_I][SIZE_J];
float S[SIZE_I][SIZE_J];
int count = 0; // глобальный счетчик
struct DATA_ {
double x;
int i;
int z;
};
typedef struct DATA_ DATA;
pthread_mutex_t lock; //Исключающая блокировка
// Функция для вычислений
double f(double x) { return x*x; }
// Потоковая функция для вычислений
void *calc_thr (void *arg) {
DATA* a = (DATA*) arg;
X[a->i][a->z] = f(a->x);
// установка блокировки
pthread_mutex_lock(&lock);
// изменение глобальной переменной
count ++;
// снятие блокировки
pthread_mutex_unlock(&lock);
delete a;
return NULL;
}
// Потоковая функция для ввода
void *input_thr(void *arg) {
Страницы
- « первая
- ‹ предыдущая
- …
- 71
- 72
- 73
- 74
- 75
- …
- следующая ›
- последняя »