pthreads

Эта статья была переведена из источника, распространяемого под свободной лицензией, и находится на начальном уровне проработки
Материал из энциклопедии Руниверсалис

POSIX Threads, широко известный как pthreads, - это модель выполнения, существующая независимо от языка, а также модель параллельного выполнения. Она позволяет программе управлять несколькими различными потоками работы, которые пересекаются во времени. Каждая единица исполнения называется потоком (thread), а создание и управление этими потоками достигается путем обращения к POSIX Threads API. POSIX Threads - это API, определенный стандартом POSIX.1c, Threads extensions (IEEE Std 1003.1c-1995).

Реализации API доступны на многих Unix-подобных POSIX-совместимых операционных системах, таких как FreeBSD, NetBSD, OpenBSD, Linux, macOS, Android,[1] Solaris, Redox и AUTOSAR. Адаптивная, обычно поставляется в виде библиотеки libpthread. Для Microsoft Windows также существуют реализация в рамках подсистемы для приложений на базе UNIX (SFU), которая предоставляет собственную реализацию ряда POSIX API, а также в рамках пакетов сторонних разработчиков (third party), таких как pthreads-w32,[2], который реализует pthreads поверх существующего Windows API.

Содержание

pthreads определяет набор типов данных, функций и констант языка программирования C. Он реализуется с помощью заголовка pthread.h и библиотеки потоков.

Существует около 100 процедур потоков, все они имеют префикс pthread_, и их можно разделить на четыре группы:

API семафоров POSIX работает с потоками POSIX, но не является частью стандарта threads, а определен в стандарте POSIX.1b, Real-time extensions (IEEE Std 1003.1b-1993). В связи с этим процедуры семафора имеют префикс sem_ вместо pthread_.


  1. c libc/bionic/pthread.c - platform/bionic - Git at Google. android.googlesource.com.
  2. Pthread Win-32: Level of standards conformance (22 декабря 2006). Дата обращения: 29 августа 2010.
  3. pthread.h(0p) — Linux manual page. Дата обращения: 18 декабря 2022.