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