IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

[Language]Mutex en Java


Sujet :

Langage Java

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 84
    Points : 75
    Points
    75
    Par défaut [Language]Mutex en Java
    Bonjour à tous,

    je viens de créer une classe qui gère les mutex.

    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
    public class Mutex<T> {
     
    	private T criticalSection;
    	private boolean isTaken;
     
    	public Mutex(T criticalSection) {
    		this.criticalSection = criticalSection;
    		isTaken = false;
    	}
     
    	synchronized public T takeMutex() throws InterruptedException {		
    		synchronized (this) {			  
    			if(isTaken) {
    				wait();
    			}
    			isTaken = true; 
    			return criticalSection;
    		}
     
     
     
    	}
     
     
    	synchronized public void giveMutex(T criticalSection) throws IllegalArgumentException {
     
    		if(!criticalSection.equals(this.criticalSection)) {
    			throw new IllegalArgumentException("Le mutex rendu ne correspond pas");
    		}
    		notify();
    		synchronized (this) {
    			isTaken = false;
     
    		}
     
    	}		
    }
    Amis programmeur temps réel, voyez vous une faille de qui s'y serait glissé ?

  2. #2
    Membre régulier

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 84
    Points : 75
    Points
    75
    Par défaut
    Oublier tout, je viens de réfléchir (et oui ça m'arrive dès fois :-). Et à priori un simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    synchonized (objet){
    //sectioncritique
    }
    devrait suffir.

  3. #3
    Membre habitué Avatar de Oui-Oui MB
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2005
    Messages : 111
    Points : 127
    Points
    127
    Par défaut
    Encore bien que tu t'es rattrapé à temps... ;-)

    C'est donc résolu ton problème ? Et par ailleurs, depuis Java 5, il y a des classes qui font des opérations atomiques facilement (AtomicInteger, ...).
    Que la Schtuche soit avec vous !!!

  4. #4
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    Si le sujet est résolu, merci de le signaler en cliquant sur
    Les Règles du Forum
    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
    "La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"

  5. #5
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Oui, synchronized est le strict équivalent du mutex C, et wait/notify les stricts équivalents des cond_wait/cond_notify.

    Il n'y a pas de sémaphores entiers, de mutex sans inversion de priorité (mais j'en ai posté un ), ni de sémaphores prioritaires, si tu veux te lancer.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/11/2005, 23h08
  2. [Language] Aide sur mon premier programme Java?
    Par hash2zo dans le forum Langage
    Réponses: 15
    Dernier message: 27/09/2005, 19h26
  3. Réponses: 7
    Dernier message: 21/06/2005, 17h04
  4. Réponses: 10
    Dernier message: 24/05/2005, 14h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo