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

ASP.NET Discussion :

A propos du Threadpool


Sujet :

ASP.NET

  1. #1
    Membre éclairé Avatar de gdkenny
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 251
    Par défaut A propos du Threadpool
    Bonjour,

    Je comptais utiliser les thread pour gérer un traitement lourd,et donc passer par Threadpool qui est très bien apparemment.

    Et puis là j'ai eu un doute :
    Vu que Threadpool est limité en nombre de thread, si j'utilise tous les threads pour mon traitement:

    Un utilisateur lance le traitement: tous les thread du pool sont utilisé.
    Un autre utilisateur lance le même traitement (et oui, c'est un site Web).

    Que se passe-il?

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Il me semble que le traitement est mis en attente, jusqu'à qu'un thread du pool se libère.
    C'est une contrainte générique aux applications serveur, ce n'est pas spécifique au web.

  3. #3
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    C'est quoi la limite de threads?

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Tu la positionnes via la méthode SetMaxThreads.

  5. #5
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Je pige pas trop le problème? T'as peur d'atteindre le maximum de threads autorisés par le ThreadPool?

    Dans la mesure où chaque requête client est traitée dans un thread à part, y aura autant de ThreadPools que de clients, donc pas de problème non?

  6. #6
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Je pense en fait que le Threadpool est partagé non ?

  7. #7
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par lutecefalco Voir le message
    J
    Dans la mesure où chaque requête client est traitée dans un thread à part, y aura autant de ThreadPools que de clients, donc pas de problème non?
    Absolument pas; le ThreadPool est static. (heureusement d'ailleurs, sinon cette classe ne présenterait aucun intérêt ).

  8. #8
    Membre éclairé Avatar de gdkenny
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 251
    Par défaut
    y aura autant de ThreadPools que de clients
    J'aimerai être sur de ça justement...

  9. #9
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par Pongten Voir le message
    Je pense en fait que le Threadpool est partagé non ?
    J'y vois aucune raison mais peut-être que je me trompe

  10. #10
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par Pongten Voir le message
    Je pense en fait que le Threadpool est partagé non ?
    Tout à fait (static pour être précis).

  11. #11
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Tout à fait (static pour être précis).
    Ok

  12. #12
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par lutecefalco Voir le message
    J'y vois aucune raison mais peut-être que je me trompe
    Euh ... par définition on utilise le threadpool pour créer un cycle avec un nombre de thread ne dépassant pas la limite au sein d'une application. Si il n'était pas partagé, il ne présenterait absolument aucun intérêt.

  13. #13
    Membre éclairé Avatar de gdkenny
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 251
    Par défaut
    Donc si le Threadpool est statique, c'est bien ce que je craignais:
    tous les utilisateurs se partagent le nombre de thread maximum du Threadpool.

    C'est pas un peu limitant ça?

  14. #14
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par gdkenny Voir le message
    Donc si le Threadpool est statique, c'est bien ce que je craignais:
    tous les utilisateurs se partagent le nombre de thread maximum du Threadpool
    Oui, c'est son concept même.

    Où est le problème ?

    Si cela t'en pose un, peut être vient-il du fait que tu as choisi d'utiliser le ThreadPool pour un usage où ce choix n'est pas optimal.

  15. #15
    Membre éclairé Avatar de gdkenny
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 251
    Par défaut
    Je ne l'ai pas encore utilisé, je préférai être sur avant

    J'ai besoin de faire un gros traitement multi-thread, sachant que le nombre de threads utilisés pour le traitement peut changer (selon l'input de l'utilisateur et le volume de données en base à cet instant)

    L'interêt du pool, c'est que du boulot est déjà un peu pré-maché...

    Mais si le nombre max de thread est limité, je ne peux pas l'utiliser du coup?
    Si 35 utilisateurs lancent le traitement en même temps...
    ?

  16. #16
    Membre éclairé Avatar de gdkenny
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 251
    Par défaut
    Pour ce genre de traitements, il faut créer et gérer soit même les threads?
    C'est lourd ça

  17. #17
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    De toute façon, si tu prévois toi-même les threads et que tu en fixe un certain nombre par clients (par ex : 15), et que tu as 35 clients en même temps, ça va quand même te faire 525 threads, et je suis pas sur que niveau performance ce sera mieux que le temps d'attente dans le pool de threads...

  18. #18
    Membre éclairé Avatar de gdkenny
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 251
    Par défaut
    Bon, ça fait encore un raison de ne pas passer par le pool dans mon cas.

    Merci

  19. #19
    Membre éclairé Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Par défaut
    A mon avis, tu as tout à gagner en passant par le ThreadPool. Si ce dernier a un nombre maximum de threads, c'est qu'il y a une bonne raison. A partir d'un certain nombre de threads, le processeur va perdre plus de temps à passer d'un thread à l'autre que de traiter le thread en cours. Je te conseille de lire les liens suivants :

    http://msdn2.microsoft.com/en-us/lib...7y(VS.80).aspx
    http://msdn2.microsoft.com/en-us/library/ms973903.aspx
    http://en.csharp-online.net/Building...CLR_ThreadPool

    Il y a un bon exemple si tu lances trois threads qui occupent le 100% du processeur, le threadpool va attendre que les deux premiers soient finis avant de lancer le troisième. Si tu gères toi-même tes threads, la performance sera moins bonne à mon avis...

    L'inconvénient du threadpool, c'est que tu ne peux pas fixer de priorité à tes Threads. C'est la seule raison que je vois de gérer tes threads manuellement.

    A toi de voir, mais je suis intéressé de savoir ce que tu en penses...

  20. #20
    Membre éclairé Avatar de gdkenny
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 251
    Par défaut
    Salut,

    en fait, la raison principale qui m'a fait ne pas choisir le threadpool,c'est le fait qu'il soit statique, et déconseillé dans le cas d'un traitement de premier plan.

    J'ai l'impression qu'il est plus commun de l'utiliser dans le cadre d'une appli winform que webform.

    De plus,dans mon cas,les traitements de synchronisation et de gestion des thread représentent une part infime du temps processeur.
    le plus demandeur en temps CPU est le couple préparation de l'ordonnancement/traitement.

    Voilà. Ceci dis,

    pour tes liens, je ne connaissais pas les 2 derniers.

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

Discussions similaires

  1. A propos de Last_insert_id
    Par f-demu01 dans le forum Administration
    Réponses: 2
    Dernier message: 26/03/2003, 08h32
  2. A propos depth buffer
    Par j.yves dans le forum DirectX
    Réponses: 1
    Dernier message: 03/12/2002, 00h41
  3. A propos des modèles d'objet (avec sources)
    Par DevX dans le forum C++Builder
    Réponses: 14
    Dernier message: 01/12/2002, 12h22
  4. Fonctionnement de la compression DivX
    Par Rodrigue dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 20/09/2002, 14h10
  5. A propos du composant DBGrid
    Par _Rico_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 24/07/2002, 09h18

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