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 :

[java 1.5]java.util.concurrent


Sujet :

Collection et Stream Java

  1. #1
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut [java 1.5]java.util.concurrent
    Voilà, j'aimerai savoir ce que donne le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ExecutorService es=Executors.newSingleThreadExecutor();
    es.execute( new Runnable1());
    es.execute( new Runnable2());
    est-ce es se charge de stocker Runnable2 en attendant que Runnable1 soit terminé ? autrement dit est-ce que es gère une file d'attente ?

    Merci pour votre aide


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  2. #2
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,


    D'après la javadoc :
    Tasks are guaranteed to execute sequentially, and no more than one task will be active at any given time.
    http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/Executors.html#newSingleThreadExecutor()

    Donc la réponse est oui

    a++

  3. #3
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    salut adiGuba et merci d'avoir pris le temps de me lire.
    J'avais déjà vu la javadoc et je ne comprends pas pourquoi la reponse est oui , car je n'ai vu nulle part le mot file d'attente, on ne connait pas vraiment sa taille , non?
    donc pour résumer , on peut lui balancer des runnables en vrac et l'executor se charge de les executer sequentiellement ? si c'est le cas, c'est formidable.


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  4. #4
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par afrikha
    salut adiGuba et merci d'avoir pris le temps de me lire.
    J'avais déjà vu la javadoc et je ne comprends pas pourquoi la reponse est oui , car je n'ai vu nulle part le mot file d'attente, on ne connait pas vraiment sa taille , non?
    L'implémentation n'est pas explicite dans la documentation, mais la phrase que j'ai cité implique bien cela :
    Il est garanti que les tâches sont exécutés en ordre séquentielle, et qu'il n'y a pas plus d'une tâche active à la fois.
    Donc en fait tu as bien un Thread qui lit une List qui contient tous les Runnable, et qui les exécutes un à un. Plus précisément c'est une LinkedBlockingQueue qui est utilisé. Cette dernière conserve les éléments en ordre FIFO et la récupération des éléments avec take est bloquante s'il n'y a pas d'élément...

    Citation Envoyé par afrikha
    donc pour résumer , on peut lui balancer des runnables en vrac et l'executor se charge de les executer sequentiellement ? si c'est le cas, c'est formidable.
    Oui ! Mais c'est toute l'API de concurrence de Java 5.0 qui est vraiment formidable et qui est un vrai bond en avance par rapport au JDK 1.4 (où tout cela était déjà possible mais nettement plus complexe à mettre en place).

    a++

  5. #5
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    merci pour toutes ces explications.
    Problème résolu


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  6. #6
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    je suis en train de parcourir cette nouvelle api , c'est vrai qu'elle est géniale mais je trouve que les Executor manque de methodes de monitoring, pour savoir où en est l'execution d'un thread.
    Quelles sont donc les methodes que vous employez pour connaitre la progression d'une tache ?


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

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

Discussions similaires

  1. GWT - java.io et java.util
    Par ddave242 dans le forum GWT et Vaadin
    Réponses: 5
    Dernier message: 28/12/2010, 10h02
  2. Class AbstractQueuedSynchronizer (java.util.concurrent.locks)
    Par flow_13 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 01/06/2010, 15h23
  3. [Java 1.5] Question facile java.util.concurrent package
    Par ZeKiD dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 06/07/2007, 16h04
  4. conflit entre les classe java.sql.* et java.util.*;
    Par obydissonn dans le forum Langage
    Réponses: 4
    Dernier message: 26/05/2006, 18h00
  5. de java.sql.Date à java.utile.Date
    Par Sniper37 dans le forum API standards et tierces
    Réponses: 10
    Dernier message: 23/05/2006, 16h10

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