OS&SP_Part1.8_Threads.pptx
- Количество слайдов: 23
Лекция 1. 8: POSIX Threads Операционные системы и системное программирование Часть 1
Определение POSIX Threads — стандарт POSIX реализации потоков (нитей) выполнения, определяющий API для создания и управления ими. Заголовочный файл pthread. h
Набор типов Тип Определение pthread_t Дескриптор потока pthread_attr_t Перечень атрибутов потока pthread_cond_t Дескриптор условной перменной pthread_mutex_t Дескриптор мьютекса
Функции управления потоками Функция Определение pthread_create Создание потока pthread_exit Завершение потока pthread_cancel Отмена потока pthread_setcancelstate Установка реакции потока на принудительное завершение pthread_join Ожидание завершения потока pthread_detach Освобождения ресурсов потока pthread_self Возвращает дескриптор текущего потока
Функции управления атрибутами потока Функция Определение pthread_attr_init Инициализировать структуру атрибутов потока pthread_attr_setdetachstate Автоматически освободить ресурсы структуры атрибутов после завершения потока pthread_attr_destroy Освободить память от структуры атрибутов
Функции синхронизации потоков Функция Определение pthread_mutex_init Инициализация мьютекса pthread_mutex_destroy Разрушения мьютекса pthread_mutex_lock Захват мьютекса pthread_mutex_trylock Попытка захвата мьютекса pthread_mutex_unlock Освобождения мьютекса pthread_cond_init Инициализация условной переменной pthread_cond_signal Пробуждения блокированного потока pthread_cond_broadcast Широковещательное пробуждения потоков pthread_cond_wait Ожидания состояния pthread_cond_timedwait Ожидания состояния указанное время pthread_cond_destroy Разрушения условной переменной
pthread_create Тип Параметр Описание pthread_t * [out] thread Дескриптор потока pthread_attr_t * [in] attr Атрибуты потока void * (void *) [in] start_routine Прототип функции потока void * [in] arg Аргумент предаваемый функции потока int [out] РЕЗУЛЬТАТ 0 – при успешном создании потока; Больше 0 – код ошибки
pthread_exit Тип Параметр Описание void* [in] status Передаваемый статус завершения потока void [out] ВОЗРАЩАЕТ НЕТ
pthread_cancel Тип Параметр Описание pthread_t* [in] pthread Дескриптор потока int [out] ВОЗРАЩАЕТ 0 – при успешном создании потока; Больше 0 – код ошибки
pthread_join Тип Параметр Описание pthread_t * [in] thread Дескриптор потока void ** [out] status_addr Адрес на статус завершения потока int [out] РЕЗУЛЬТАТ 0 – при успешном завершении потока; Больше 0 – код ошибки
pthread_self Тип Параметр void [in] НЕТ pthread_t [out] ВОЗРАЩАЕТ Описание Возвращает дескриптор текущей нити
pthread_mutex_init Тип Параметр Описание pthread_mutex_t [in] lock Дескриптор мьютекса pthread_mutexattr_t [in] attr Атрибуты мьютекса int [out] РЕЗУЛЬТА Т 0 – при успешной инициализации; Больше 0 – код ошибки
pthread_mutex_destroy Тип Параметр Описание pthread_mutex_t [in] lock Дескриптор мьютекса int [out] РЕЗУЛЬТА Т 0 – при успешном завершении потока; Больше 0 – код ошибки
pthread_mutex_lock Тип Параметр Описание pthread_mutex_t [in] lock Дескриптор мьютекса int [out] РЕЗУЛЬТА Т 0 – при успешном захвате мьютекса; Больше 0 – код ошибки
pthread_mutex_trylock Тип Параметр Описание pthread_mutex_t [in] lock Дескриптор мьютекса int [out] РЕЗУЛЬТА Т 0 – при успешном захвате мьютекса; -1 – если мьютекс занят другим потоком; Больше 0 – код ошибки
pthread_mutex_unlock Тип Параметр Описание pthread_mutex_t [in] lock Дескриптор мьютекса int [out] РЕЗУЛЬТА Т 0 – при успешном освобождении мьютекса; Больше 0 – код ошибки
pthread_cond_init Тип Параметр Описание pthread_cond_t [in] condition Дескриптор условной переменной pthread_condattr_t [in] attr Атрибуты условной переменной int [out] РЕЗУЛЬТА Т 0 – при успешной инициализации; Больше 0 – код ошибки
pthread_cond_signal Тип Параметр Описание pthread_cond_t [in] condition Дескриптор условной переменной int [out] РЕЗУЛЬТА Т 0 – при успешной инициализации; Больше 0 – код ошибки
pthread_cond_broadcast Тип Параметр Описание pthread_cond_t [in] condition Дескриптор условной переменной int [out] РЕЗУЛЬТА Т 0 – при успешной инициализации; Больше 0 – код ошибки
pthread_cond_wait Тип Параметр Описание pthread_cond_t [in] condition Дескриптор условной переменной pthread_mutex_t [in] mutex Дескриптор мьютекса для условной переменной int [out] РЕЗУЛЬТА Т 0 – при успешной инициализации; Больше 0 – код ошибки
pthread_cond_timedwait Тип Параметр Описание pthread_cond_t [in] condition Дескриптор условной переменной pthread_mutex_t [in] mutex Дескриптор мьютекса для условной переменной const struct timespec [in] abstime Время ожидания int [out] РЕЗУЛЬТА Т 0 – при успешной инициализации; Больше 0 – код ошибки
pthread_destroy Тип Параметр Описание pthread_cond_t [in] condition Дескриптор условной переменной int [out] РЕЗУЛЬТА Т 0 – при успешной инициализации; Больше 0 – код ошибки
The End