#include #include #include #include #include #include #include #include using namespace std; double timevalsub(struct timeval *tv1, const struct timeval *tv2) { double res = 0; res = tv2->tv_sec - tv1->tv_sec; res += (tv2->tv_usec - tv1->tv_usec)*1.0/1000000; return res; } // Returns the duration of call double fct(int num, int nbtours, double &temps_res) { struct timeval tv1, tv2; int err; // pour les sectaire du C++, on peut se passer de printf // utilisation d'un ostringstream pour construire la chaine ostringstream c; // on vide la stream (c'est inutile ici car on vien de la créer mais // si c'est dans une boucle ...) c.str(""); // on construit la chaine c << num << ": lancement de la fonction pour " << nbtours << " itérations" << endl; // on affiche le résultat cout << c.str(); // dans la suite j'utilise fprintf qui ne pose aucun problème. // ##################################### // Partie calcul double temps_total = 0; for (int i=0; i]" << endl; exit (1); } cout << "Th principal : lancement de " << nbthreads << " fois la fonction" << endl; // un tableau pour stocker des thread vector tab; double results[nbthreads]; double temps_total = 0; for (i=0; i