next up previous contents
Next: Иерархическая блокировка Up: Синхронизация потоков Previous: Удаление мьютекса   Contents

Пример использования мьютексов

Функция increment_count() использует мьютекс, чтобы гарантировать атомарность модификации разделяемой переменной count.

Функция get_count() использует мьютекс, чтобы гарантировать, что переменная count атомарно считывается:

#include <pthread.h> 

pthread_mutex_t count_mutex; 

long long count; 

void increment_count() {

  pthread_mutex_lock(&count_mutex); 

  count = count + 1;

  pthread_mutex_unlock(&count_mutex); 

}

 

long long get_count() {

  long long c;

  pthread_mutex_lock(&count_mutex); 

  c = count; 

  pthread_mutex_unlock(&count_mutex);

  return (c); 

}



2004-06-22