Bonjour, je suis débutant en JAVA. Pour un exercice, je dois réaliser un allocateur et liberateur de N ressources en utilisant les moniteurs.

voici le début de mon code.


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
27
28
29
30
31
32
33
34
35
36
37
38
public class Serveur {
 
	int k = 10;
	int nblibre = 0;
	int n;	
 
	static Servant[] servants;
 
 
	public void main(String argv[]){
 
 
	// servants = new Servant[K];
 
	for(int i =0; i < k; i++){
	servants[i] = new Servant();
	servants[i].start();
 
 
	}
}
 
 
	public void Allouer(int n) throws InterruptedException{
 
		while(nblibre>n){
			wait();
 
		}
		nblibre -= n;
	}
 
	public void Liberer(int n){
		nblibre += n;
 
 
	}
}




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
public class Servant extends Thread{
 
 
 
public Servant(){
 
}
 
public void run(){
 
	// recevoir une requete
 
	// allouer ressource
	// Serveur.Allouer(int n);
	System.out.println("Traitement de la requete");
	// traiter la requete
	// Serveur.Liberer(int n);
	System.out.println("Libération de l'espace");
	// liberer la ressource
 
}
 
 
 
}
Je ne demande pas à ce que l'on fasse l'exercice à ma place, mais comprendre, notamment les passage de variables (constructeur etc...). merci de votre aide.