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

Plateformes (Java EE, Jakarta EE, Spring) et Serveurs Discussion :

thread utilisation ?


Sujet :

Plateformes (Java EE, Jakarta EE, Spring) et Serveurs

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 79
    Par défaut thread utilisation ?
    Bonjour, j'ai un serveur qui écoute sur port donné, lorsqu'un client se connecte un thread est créé pour gérer les entrées et sorties du flux de ce client. Le message que le client envoie m'informe sur les propriétés d'une seul classe parmi x classes possible, exemple de message <xml ... <class name="Achat"><void id="article1"><int>2</int>...> ou bien un xml sur la classe Vente, Suppression, ...
    Ma question, est ce le thread de traiter ce message ou dois je faire un nouveau thread pour exploiter ce message ?
    Avez vous de la doc sur ce genre de traitement ?

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    ben tout dépend du traitement. Peux tu mettre en attente le client pendant le traitement? Si oui -> utilise le même thread. Si non, il va te falloir une srote de pile de tache en attente et un ou plusieurs threads qui les consume

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 79
    Par défaut
    ok je mets le client en attente, cela ne pose aucun problème d'utiliser le seul thread qui écoute le client pour effectuer cette tache ? (tache de chat, enregistrement dans bbd, ...)

  4. #4
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Les soucis que tu avoir en ayant un thread par client c'est que si tes traitements sont trop long la socket peut partir en timeout. Ou si tu gères mal tes erreurs tu peux planter la communication avec le client.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 79
    Par défaut
    Et si je mets le client en attente, et que je crée un thread pour effectuer sa tache, c'est mieux ça ? le système pourra gérer tous ces threads ?
    Comment les programmeurs de jeux en ligne font-ils avec ses miliers de connectés ?

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    si vous faites ça dans un thread à part, justement, vous ne mettez pas le client en attente. Vous lui répondez en gros "ok, bien recu, je traiterais plus tard".

    Peu de jeu en ligne on des "milliers" de connectés sur un même server il y a toujours la mise en place de différents trucs pour répartir la charge sur plusieurs (beaucoup) de serveurs.

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/04/2009, 10h49
  2. boost.thread utiliser un functeur
    Par reptils dans le forum Boost
    Réponses: 6
    Dernier message: 25/11/2008, 08h57
  3. Thread -> Utiliser Synchronize() dans une fonction
    Par Futixu dans le forum C++Builder
    Réponses: 5
    Dernier message: 26/01/2007, 13h13
  4. Module Threading, utilisation timer(x,y) .
    Par aladin46 dans le forum Général Python
    Réponses: 3
    Dernier message: 02/01/2005, 18h55
  5. [Astuce][Thread]Utilisation des blocs synchronized
    Par Pill_S dans le forum Concurrence et multi-thread
    Réponses: 14
    Dernier message: 21/07/2004, 14h14

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