Salut,
Voilà j'essaye de faire une émulation de buffer (TP d'université). Je vous mets ci dessous une partie fonctionnelle incomplète (sachant que je gère aussi des délais fictifs d'attente pour chaque producteurs et consommateurs)
Le buffer contient 4 espaces destinés à 4 lettres.
Un producteur envoie en une lettre au buffer, si celui-ci est plein, le thread se met en attente (wait), sinon il l'insere en première position et décale les autres.
Un consommateur extraie une lettre du buffer (il prend la 4ème si elle n'est pas nulle, ou 3ème, ou seconde ou première) mais si celui-ci est vide il se met en attente (wait).
Le programme fonctionne lorsque j'ai:
- 1 consommateur & 1 producteur
- 2 consommateurs & 1 producteur
Cela ne fonctionne pas lorsque j'ai:
- 1 consommateur & 2 producteurs
Voici mon code:
Classe correspondant au buffer:
Producteur et consommateur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
Main:
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Toute aide est grandement appréciée
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20, je vais aussi chercher de mon coté cet après midi.

 

 
		
		 
         
 

 
			
			

 
   


 Threads, consommateurs & producteurs, problème de synchronisation.
 Threads, consommateurs & producteurs, problème de synchronisation.
				 Répondre avec citation
  Répondre avec citation

 
						
Partager