Bonjour,
j'essaie de synchroniser 2 threads. Pour cela je lits des cours :
http://emmanuel-delahaye.developpez....-threads-c/#LV
pour ne citer que celui là et j'ai de grosses difficultés de compréhension sur les exemples, ça ressemble beaucoup plus à du C++ qu'à du C. (et je n'ai aucune notion en C++)
alors si quelqu'un pourrais me traduire un bout de l'exemple en C normale ou me dire comment comprendre, ça serait magique
Merci, cordialement
Philippe
l'exemple :
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 struct shared sh = { .mut = PTHREAD_MUTEX_INITIALIZER, .synchro = PTHREAD_COND_INITIALIZER, }; struct data da = { .nb = 5, .sid = "task A", .psh = &sh, }; struct data db = { .nb = 4, .sid = "Task B", .psh = &sh, };
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 for (i = 0; i < p_data->nb; i++) { pthread_mutex_lock (&psh->mut); pthread_cond_wait (&psh->synchro, &psh->mut); printf (" " "'%s' (%d)\n", p_data->sid, i); pthread_mutex_unlock (&psh->mut); }
Partager