The OpenNET Project / Index page

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

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

Запирание мьютекса.

Функция pthread_mute_lock() используется для запирания мьютекса. Если мьютекс уже закрыт, вызывающий поток блокируется и мьютекс ставится в очередь приоритетов. Когда происходит возврат из pthread_mute_lock(), мьютекс запирается, а вызывающий поток становится его владельцем. pthread_mute_lock() возвращает 0 после успешного завершения, или другое значение, если произошла ошибка. Пример вызова:

#include <pthread.h> 

pthread_mutex_t mp; 

int ret; 

ret = pthread_mutex_lock(&mp);

Для открытия мьютекса используется функция pthread_mutex_unlock().

Мьютекс должен быть закрыт, а вызывающий поток должен быть владельцем, то есть тем, кто запирал мьютекс. Пока любые другие потоки ждут доступа к мьютексу, поток в начале очереди не блокирован. pthread_mutex_unlock() возвращает 0 после успешного завершения, или другое значение, если произошла ошибка. Пример вызова:

#include <pthread.h> 

pthread_mutex_t mp; 

int ret; 

ret = pthread_mutex_unlock(&mp);



2003-12-09



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

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