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

POSIX C Discussion :

Contrôler le nombre de thread simultané


Sujet :

POSIX C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4
    Par défaut Contrôler le nombre de thread simultané
    Bonjour à tous,
    je suis en train de coder un programme en C avec Gtk+, qui va permettre de soumettre une url à plusieur annuaire et moteur de recherche. je developpe l'application sous windows.

    J'utilise la librairie posix pthread.h win32 pour gérer mes threads.
    Mon application créé un thread pour chacune des connexions socket, qui permet de remplir un formulaire de validation.

    Mais je voudrais avoir la possibilité de limiter le nombre de thread exécuté simultanément.

    Ex: J'ai 200 formulaires à remplir, et je veux que mon application gére un maximum de 5 threads silmutanément. Dès qu'un thread ce termine, un autre débute jusqu'à que les 200 formulaires soit remplis. Sachant qu'un thread active une socket et rempli un seul formulaire.

    Comment puis-je fait ?

    Merci d'avance

  2. #2
    Membre éprouvé
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	pthread_mutex_lock(&mtex);
    	pthread_create( &functhr, 0,(void *)&func1,NULL); // un ou 5 threads => meme combat
            pthread_cond_wait(&cond, &mtex);
            //ici tu peux "boucler"
    dans ton thread tu met:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	pthread_mutex_unlock(&mtex);
    	pthread_cond_broadcast(&cond);
    ca auras pour effet de debloquer le pthred_cond_wait.

    je te laisse implementer tout ce merdier comme tu le souhaite
    c'est surement pas la meilleure solution, je debute avec les pthread (et avec le C en general), ca pourrais te rendre service, au moins en attendant que quelqu'un d'autre reponde

    edit: pthread_join() pourrait te rendre service, suivant ce que tu fait

  3. #3
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Bonjour,
    sachant que tu utilise GTK+, pourquoi tu n'utilise pas la glib pour la gestion des threads?
    Tu n'aurais même pas eu besoin de poser la question : g_thread_pool_set_max_threads

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4
    Par défaut merci
    Je vous remerci de toutes ces pistes. Je vais faire des testes et dès que j'ai fini, je poste une solution complète.

    Merci bien

Discussions similaires

  1. Nombre de Thread exécuté simultanément
    Par menzlitsh dans le forum Concurrence et multi-thread
    Réponses: 2
    Dernier message: 04/09/2012, 10h09
  2. Réponses: 3
    Dernier message: 17/08/2012, 15h06
  3. threads simultanes sur une meme socket
    Par khayyam90 dans le forum Développement
    Réponses: 9
    Dernier message: 28/01/2006, 16h03
  4. Suite Thread Simultanés: instances de classe differentes?
    Par macgile dans le forum Framework .NET
    Réponses: 3
    Dernier message: 04/01/2006, 09h50
  5. Limiter de nombre de connexions simultanées
    Par Drahu dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 08/09/2005, 11h43

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