Dîner Des Philosophes

"); long wait= ( long) ( () * 1000); ( wait);} catch ( InterruptedException e) {}} private void manger () { ( "Philosophe " +i+ " est en train de manger"); ( wait);} catch ( InterruptedException e) {}}} 09/05/2013, 00h21 #2 Je n'ai pas regardé en détail, mais t'as un gros soucis avec the verrous, ils sont spécifiques à chaque thread, alors que la logique voudrait que les verrous soient globaux. Du coup ton tableau d'état n'est pas protégé, ce qui risque d'amener la création ou la disparition d'une fourchette. 09/05/2013, 22h26 #3 Membre confirmé Le soucis semble venir du fait que tu crées un tableau de conditions par philo et un lock différent par philo. TD4 bis : Le Diner des Philosophes - Processus - IA - IAD - Java : Supports de cours. tu changes le eat[i-1] d'un autre philo mais ce dernier ne connait pas la variable eat[] de l'autre philo. Il faut que ce soit commun.

Le Dîner Des Philosophes Saint

J'avais mal compris l'usage du verrou en effet. J'en avais un pour chaque philosophe, ce qui n'est pas logique. Merci beaucoup pour vos réponses!

getName () + ": j'ai obtenu les fourchettes, je mange, il me reste " + nbBouchees + " bouchees. "); try { Thread. sleep ( Philosophe. TempsBaseBouchee + hasard. nextInt ( Philosophe. TempsBouchee));} lesFourchettes. deposer ( no); System. getName () + ": je pense un peu après ma bouchée... TempsMinPensee + hasard. TempsPensee));}} long fin = System. currentTimeMillis (); tempsTotalRepas = ( fin - debut) / 1000d; System. printf ( "%s: j'ai fini en%. \n ", this. Le dîner des philosophes du. getName (), tempsTotalRepas);}} classe Fourchettes package diner; import; /** liste des Fourchettes que doivent se partager les philosophes*/ public class Fourchettes { /** tableau d'occupation des fourchettes false = occupee, true = libre*/ boolean [] lesFourchettes; /** nb de fourchettes*/ int taille; /** constructeur initialisant la taille et le tableau des fourchettes a true*/ public Fourchettes ( int _taille) { taille = _taille; lesFourchettes = new boolean [ taille]; Arrays. fill ( lesFourchettes, true);} /** fonction appelee par un processus philosophe i.

July 5, 2024