Операционные системы. Теория и практика. Замятин А.В. - 234 стр.

UptoLike

Составители: 

234
sleep(rand_num);
printf (“Bye from %d\n”, my_number);
pthread_exit(NULL);
}
Пример использования мьютекса для контроля доступа к перемен-
ной. В приведенном ниже коде функция increment_count использует
мьютекс, чтобы гарантировать атомарность (целостность) модификации
разделяемой переменной count. Функция get_count() использует
мьютекс, чтобы гарантировать, что переменная count атомарно считыва-
ется.
#include <pthread.h>
pthread_mutex_t count_mutex;
long count;
void increment_count() {
pthread_mutex_lock(&count_mutex);
count = count + 1;
pthread_mutex_unlock(&count_mutex);
}
long get_count() {
long c;
pthread_mutex_lock(&count_mutex);
c = count;
pthread_mutex_unlock(&count_mutex);
return (c);
}
Пример многопоточной программы с синхронизацией с использо-
ванием мьютексов:
#include <pthread.h>
#include <stdio.h>
#include <unistd.h>
#include <math.h>
#define SIZE_I 2
#define SIZE_J 2