The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Программирование, языки" / Оглавление документа
next up previous contents
Next: Иерархия блокировок. Up: Синхронизация потоков. Previous: Удаление мьютекса.   Contents

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

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

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

#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); 

}

Рис. 29. Атомарные операции с мьютексом.



2003-12-09



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру