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 #include void *fct(void* input) { std::string str = static_cast (input); std::cout<< str <<std::endl; } int main(void) { std::string str = "Hello world !"; pthread_t t1 ; pthread_create(&t1, 0, fct, (void*)&str); pthread_join(t1, 0); return 0; } g++ main.cpp –lpthread –D_REENTRANT –o test
Gestion par le système
Thread 1| = 30 | = 60 | = 14 | Thread 2| = 12 | = 5 | = 3 | Thread 3| = 8 | = 9 | Thread 4| = 10 | = 13 |
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)
Addition de deux tableauxCalculer PITrouver des nombres premiers
Les philosophes