cs_suzukMan
Messages postés58Date d'inscriptionmercredi 25 avril 2007StatutMembreDernière intervention13 septembre 2012
-
2 nov. 2008 à 14:48
cs_suzukMan
Messages postés58Date d'inscriptionmercredi 25 avril 2007StatutMembreDernière intervention13 septembre 2012
-
3 nov. 2008 à 21:42
Bonjour,
Je dois réaliser un programme en java qui simule le traitement des processus par un systéme.
J'ai au depart 2 Threads un qui génére des objets représentant des processus de lecture et l'autre processus d'écriture. Ces threads génére aléatoirement les processus tous les x temps.
Les processus crées sont ajoutés à une collection qui represente la file d'attente des processus vers le processeur (mono processeur).
Comment gérer la situation ou deux processus arrivent en même temps dans la file d'attente? car il m'est demandé de gérer le cas ou les processus d'écriture sont prioritaire donc iront en premeier dans la file ou soit les processus de lecture sont prioritaire c'est donc la lecture qui ira avant l'ecriture dans la file.
J'espere avoir été assez clair. Merci par avance de votre aide !
cs_jojolemariole
Messages postés519Date d'inscriptionmercredi 21 mars 2007StatutMembreDernière intervention19 décembre 201625 3 nov. 2008 à 14:47
Salut,
Si j'ai bien compris, il s'agit simplement d'un producteur/consommateur, où le rôle de consommateur est joué par le processeur et celui de producteur par les deux threads qui créent les processus.
En général tu fais effectivement un tampon entre le deux (Par exemple l'objet BlockingQueue me semble plus adapté qu'une simple Collection).
Par contre, si tu veux simuler une arrivée "en même temps de 2 processus" il va falloir que tu codes un peu plus je pense, parce que par défaut, ce cas ne se présente pas (y'en aura toujours un qui sera mis devant l'autre sans que tu le saches). Si tu veux avoir la main mise sur l'ordonnancement, il faudra coder un peu je pense.
Essaie un peu le BlockingQueue et dis-moi ce que t'en penses.
cs_suzukMan
Messages postés58Date d'inscriptionmercredi 25 avril 2007StatutMembreDernière intervention13 septembre 20121 3 nov. 2008 à 21:42
Merci pour cette réponse rapide.
J'ai commençer à regarder le BlockingQueue qui me parait interessant est pourrait répondre à mon problème.
J'ai trouvé aussi une possibilité assez simple utilsé la méthode setPrirority(Boolean) de l'objet Thread !
Je vais utiliser les deux cas je pense et comparer les résultat.
cs_suzukMan
Messages postés58Date d'inscriptionmercredi 25 avril 2007StatutMembreDernière intervention13 septembre 20121 3 nov. 2008 à 21:42
Merci pour cette réponse rapide.
J'ai commençer à regarder le BlockingQueue qui me parait interessant est pourrait répondre à mon problème.
J'ai trouvé aussi une possibilité assez simple utilsé la méthode setPrirority(Boolean) de l'objet Thread !
Je vais utiliser les deux cas je pense et comparer les résultat.