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

Collection et Stream Java Discussion :

Acces concurrent sur une map


Sujet :

Collection et Stream Java

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut Acces concurrent sur une map
    Bonjour,
    j'ai un besoin simple mais je ne sais pas quelle solution choisir:
    j'ai deux threads:
    le principal qui est produit des messages et doit les stocker
    un thread deamon qui doit envoyer les messages (en gardant leur ordre de création ) et se mettre en attente si plus de message à envoyer.

    Je pensais faire une linked hash map avec de bon vieux wait/notify et les getters et setters sur la map en synchronized.

    Mais n'y aurait-il pas plus efficace?

    Merci d'avance, j'espère avoir été clair
    Stay in Bed .. Save Energy

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Regardes du coté des BlockingQueue...


    a++

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Merci pour ta réponse!
    petite question du coup :
    est que lors d'un take si il n'y a pas de message le thread est en attente active?

    en gros vaut-il mieux faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while (true) { 
    	MonObject o = queue.take();
    	//traitement
    }
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    while(true){
    	MonObject o = queue.poll(20,TimeUnit.MILLISECONDS);
    	if(o == null){
    		Thread.sleep(150);
    	}else{ //traitemement}
    }
    Stay in Bed .. Save Energy

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    C'est une attente passive toute propre, basé sur les ReentrantLock de Java 5.0.

    Bref c'est simple et c'est propre

    a++

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Ok merci
    Stay in Bed .. Save Energy

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

Discussions similaires

  1. Accès concurents sur une map
    Par thierryler dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 04/12/2010, 01h10
  2. Accès concurrent sur un cursor "For update"
    Par atruong dans le forum Oracle
    Réponses: 7
    Dernier message: 04/05/2006, 22h47
  3. [Oracle][Agent intélligent]Gestion acces concurrent a une BD
    Par oussam dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 10/03/2006, 11h41
  4. Acces ODBC sur une BD mysql
    Par toure32 dans le forum Administration
    Réponses: 1
    Dernier message: 05/01/2006, 21h46
  5. Réponses: 7
    Dernier message: 08/03/2004, 15h30

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