Введение
Модель исполнения, обеспечивающая параллельные вычисления.
В вычислительной технике POSIX Threads, обычно известные как pthreads, представляют собой модель исполнения, независимую от языка программирования, а также модель параллельного исполнения. Она позволяет программе управлять множеством различных потоков работы, выполняющихся одновременно. Каждый поток работы называется потоком, а создание и управление этими потоками осуществляется посредством вызовов API POSIX Threads. POSIX Threads – это API, определённый стандартом POSIX.1c, Threads extensions (IEEE Std 1003.1c 1995) Института инженеров электротехники и электроники (IEEE). Реализации API доступны для многих POSIX-совместимых Unix-подобных операционных систем, таких как FreeBSD, NetBSD, OpenBSD, Linux, macOS, Android, Solaris, Redox и AUTOSAR Adaptive, как правило, в виде библиотеки libpthread. Существуют также реализации для DR DOS и Microsoft Windows: в подсистеме SFU/SUA, обеспечивающей нативную реализацию ряда POSIX API, и в сторонних пакетах, таких как pthreads w32, реализующих pthreads поверх существующего API Windows.
In computing, POSIX Threads, commonly known as pthreads, is an execution model that exists independently from a programming language, as well as a parallel execution model. It allows a program to control multiple different flows of work that overlap in time. Each flow of work is referred to as a thread, and creation and control over these flows is achieved by making calls to the POSIX Threads API. POSIX Threads is an API defined by the Institute of Electrical and Electronics Engineers (IEEE) standard POSIX.1c, Threads extensions (IEEE Std 1003.1c 1995). Implementations of the API are available on many Unix like POSIX conformant operating systems such as FreeBSD, NetBSD, OpenBSD, Linux, macOS, Android, Solaris, Redox, and AUTOSAR Adaptive, typically bundled as a library libpthread. DR DOS and Microsoft Windows implementations also exist: within the SFU/SUA subsystem which provides a native implementation of a number of POSIX APIs, and also within third party packages such as pthreads w32, which implements pthreads on top of existing Windows API.
Темы POSIX для Windows
Windows не поддерживает стандарт pthreads нативно, поэтому проект Pthreads4w стремится предоставить переносимую и открытую реализацию-обёртку. Его также можно использовать для переноса программного обеспечения Unix (использующего pthreads) на платформу Windows с минимальными или вообще без изменений. Pthreads4w версии 3.0.0 или более поздней, распространяемой под лицензией Apache Public License v2.0, совместима с 64-разрядными и 32-разрядными системами Windows. Версия 2.11.0, распространяемая под лицензией LGPLv3, также совместима с 64-разрядными и 32-разрядными системами. Проект Mingw w64 также содержит реализацию-обёртку 'pthreads, winpthreads, которая стремится использовать больше нативных системных вызовов, чем проект Pthreads4w. Подсистема среды Interix, доступная в пакете Windows Services for UNIX/Subsystem for UNIX based Applications, предоставляет нативный порт API pthreads, то есть он не отображается на API Win32, а построен непосредственно на интерфейсе системных вызовов операционной системы.