- Поток POSIX
-
POSIX Threads — стандарт потоков (нитей) выполнения, определяющий API для создания и управления ими.
Библиотеки, реализующие этот стандарт (и функции этого стандарта), обычно называются Pthreads (функции имеют приставку «pthread_»). Хотя наиболее известны варианты для Unix-подобных операционных систем, таких как Linux или Solaris, но существует и реализация для Microsoft Windows (Pthreads-w32)
Основные функции стандарта
Pthreads определяет набор типов и функций на языке программирования Си. Заголовочный файл — pthread.h.
- Типы данных:
- pthread_t: дескриптор потока
- pthread_attr_t: перечень атрибутов потока
- Функции управления потоками:
- pthread_create(): создание потока
- pthread_exit(): завершение потока (должна вызываться функцией потока при завершении)
- pthread_cancel(): отмена потока
- pthread_join(): заблокировать выполнение потока до прекращения другого потока, указанного в вызове функции
- pthread_detach(): освободить ресурсы занимаемые потоком (если поток выполняется освобождение ресурсов произойдет после его завершеня)
- 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_wait(): с помощью условных переменных
См. также
- Native POSIX Thread Library (NPTL)
- GNU Portable Threads
External links
- The Open Group Base Specifications Issue 6, IEEE Std 1003.1 (англ.)
- POSIX-потоки и синхронные обработчики (англ.)
- Многопоточное программирование (Учебник Pthreads) (англ.)
- Примеры использования Pthreads (англ.)
- Примеры использования Pthreads в C/C++ (англ.)
- Статья «Объясняя потоки POSIX», Даниэля Роббинса (основателя проекта (англ.)
- Интервью «10 вопросов Девиду Бутенхофу о параллельном программировании и потоках POSIX» с Майклом Суиссом (англ.)
- Open Source POSIX Threads для Win32 (англ.)
- GNU Portable threads (англ.)
- Типы данных:
Wikimedia Foundation. 2010.