Bonjour,
Voila, je cherche a faire fonctionner quelques threads en C++. J'ai un code tres simple qui ne veut pas fonctionner: un cout dans main affiche sans probleme, mais un cout dans la fonction executée par le thread n'affiche rien.
Il semblerait que le thread soit bien créé puisque je n'ai pas d'erreur a la création du thread.
Les commentaires: j'ai tenté de faire inscrire sur cout du texte via le thread principal et le thread créé, mais le thread créé n'ecrit jamais rien. J'ai tenté un mutex sur cout qui apparement n'etait pas thread safe, mais rien n'y faisait. J'ai tenté de flusher, toujours rien...
Ou est mon erreur ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 #include <iostream> #include <pthread.h> #include <unistd.h> pthread_mutex_t coutMutmut = PTHREAD_MUTEX_INITIALIZER; void* foo(void* arg) { //pthread_mutex_lock( &coutMutmut ); std::cerr << "surpouaite.\n" << std::endl; //std::cerr.flush(); //pthread_mutex_unlock( &coutMutmut ); return NULL;//pthread_exit(0); } int main(int argc, char argv) { pthread_t id; if(pthread_create(&id, NULL, foo, NULL)) std::cout << "argh" << std::endl; //else; //pthread_mutex_lock( &coutMutmut ); //std::cout << "pouaite.\n" << std::endl; //std::cout.flush(); //pthread_mutex_unlock( &coutMutmut ); }
Partager