Capocasale & Droz
Exécuter une fonction en parallèle Utilisation de plusieurs fonctions en parallèles pour obtenir un résultat Accès à des ressources simultanément
Portable Operating System Interface UNIX Famille de standardsStandardisation des API des logiciels pour UNIXSpécification d’interfaces utilisateurs et logiciellesDivision en trois partie Les API Les commandes et utilitaires Test de conformité Plusieurs versions (POSIX 1c)
PthreadsSous-standard de la norme POSIXDescription d’une interface de programmation Disponible nativement sur les système UNIX Langage CDisposition de fonctions Création / Destruction Ordonnancement de tâches Synchronisation Gestion de signaux Man pthread sur google Et les threads
Comment utiliser pthreads -lpthread-D_REENTRANT#include, #include g++ main.cpp –lpthread –D_REENTRANT –o test #include void *fct() { std::cout<<"Hello World !"<<std::endl; } int main(void) { pthread_t t1 ; pthread_create(&t1, 0, fct, 0); pthread_join(t1, 0); return 0; }
Gestion par le système
Thread = 24 Thread = 12 Thread = 12 Thread = 8 Algorithme d'entrelacement
Système de verrouAccès en lecture et/ou en écriture aux mêmes variables Zone d'exclusion mutuelle (mutex)
Sémaphores (zone contrôlée)