Les threads POSIX, souvent appelés pthreads, sont un sous-standard de la norme POSIX décrivant une interface de programmation permettant de gérer des threads. Il s'agit du standard IEEE Std 1003.1c-1995 (POSIX.1c, Threads extensions).
Cette interface est disponible sur la plupart des systèmes Unix modernes, par exemple Linux, les différentes variantes modernes de BSD, Mac OS X et Solaris[1],[2]. Elle n'est pas disponible nativement sous Microsoft Windows mais il existe plusieurs implémentations dont une de Microsoft[3].
Spécification
Le standard définit un ensemble de types de données, de fonctions et de constantes en langage C. Le fichier à inclure dans les sources en C se nomme pthread.h. Une centaine de fonctions sont ainsi définies[4].
La bibliothèque dispose notamment de fonctions permettant la création et la destruction de threads, l'ordonnancement des tâches, leur synchronisation, la gestion des signaux et des données partagées[5].
↑Daniel Robbins, « POSIX threads explained », IBM developerWorks : « When you want to write portable multithreaded code, code that works under Solaris, FreeBSD, Linux, and more, POSIX threads are the way to go. »
↑José R.C. Cruz, « Mastering Threads on Mac OS X » : « The POSIX thread library (…) is platform-agnostic, and available on all POSIX-compliant systems such as Linux, BSD, and Mac OS X. »
Bradford Nichols, Dick Buttlar, Jacqueline Proulx Farell, Pthreads Programming : A POSIX Standard for Better Multiprocessing, O'Reilly & Associates, , 267 p. (ISBN978-1-56592-115-3 et 1-56592-115-1, lire en ligne)
(en) Kay A. Robbins et Steven Robbins, UNIX Systems Programming : communication, concurrency and threads, Upper Saddle River (N.J.), Prentice-Hall, , 893 p. (ISBN978-0-13-042411-2 et 0-13-042411-0, lire en ligne)