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

Concurrence et multi-thread Java Discussion :

Nb de threads


Sujet :

Concurrence et multi-thread Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Par défaut Nb de threads
    Hello,

    Je dois, en java, faire genre 500 pings tout les certains temps (plusieurs fois par jour, p.ex toutes les h)

    Je vais faire plusieurs threads, qui font chacun un (ou quelques) pings. Plus il y aura de threads, plus ce sera rapide, mais je pense que faire trop de threads ne sera pas non plus bon... Y a il une limite à ne pas dépasser? Puis-je en faire 500 sans planter la VM? et 1000?

    Merci, A+

  2. #2
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 111
    Par défaut
    la carte réseau les executera a la suite donc je ne sais pas si tu vas vraiment y gagner a faire un millier de thread. une dizaine c'est deja bien.

  3. #3
    Membre éclairé Avatar de ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Par défaut
    Ouais c'est juste... Je vais faire des tests pour voir jusqu'à combien je gagne du temps...

    Merci, A+

  4. #4
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Par défaut
    Pour ce genre de problemes en general je me cree un pool de threads avec une taille maxi (parametrable) et je fais 2/3 tests histoires de determiner avec quel nombre de threads ca marche le mieux...

    Mais comme on te l'a deja dit, comme de toute facon tu vas etre limite par l'acces a la resource unique qu'est ta carte reseau, 500 theads ne te serviront a rien.

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  5. #5
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Et pourquoi pas un seul, vu que ça sera séquentiel sur ta carte réseau?

  6. #6
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Par défaut
    Citation Envoyé par ®om
    Et pourquoi pas un seul, vu que ça sera séquentiel sur ta carte réseau?
    Bah tu ne perds pas le temps de l'init de la socket et tout le toutim, ton programme ira aussi vite que la carte reseau pourra creer de sockets, en sequentiel (1 thread) ta vitesse sera celle de ton code (ping attente du retour ...).
    En multi-thread la vitesse sera proche de celle du systeme (interruption pour acceder a la carte reseau) si tu dimensionnes bien ton pool de thread et comme tu fais des pings sur plusieurs machines (~500) tu n'as pas besoin que le ping de l'une ai repondu pour continuer avec d'autres machines...

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  7. #7
    Membre éclairé Avatar de ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Par défaut
    Ben non, je peux gagner du temps car elle va envoyer le ping 1, ensuite avant de recevoir la réponse, elle enverra le 2, ...

    Mais c'est vrai que 500 ca sert à rien.

    En fait, c'est l'envoi qui est séquentiel. Pas les ping en général...

    A+

    edit: grillé par bulbo

Discussions similaires

  1. Tri multi-threadé
    Par Tifauv' dans le forum C
    Réponses: 8
    Dernier message: 28/06/2007, 09h00
  2. récupérer la valeur de sortie d'un thread
    Par jakouz dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2002, 11h28
  3. Programmer des threads
    Par haypo dans le forum C
    Réponses: 6
    Dernier message: 02/07/2002, 13h53
  4. Réponses: 5
    Dernier message: 12/06/2002, 15h12
  5. [Kylix] Pb de Thread !!
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 25/04/2002, 13h53

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