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

C Discussion :

Aide pthread utilisation


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 23
    Par défaut Aide pthread utilisation
    Bonsoir,

    je suis actuellement en train de réaliser un projet qui consiste à simuler l'activité de plusieurs caisses dans un magasin.
    J'ai créé trois fonctions qui calculent les articles du client et je souhaiterais les exécuter en même temps.

    Je sais utiliser les pthreads si on considère qu'il n'y a qu'une seule caisse mais je bloque quand il s'agit de le faire sur plusieurs caisses, et donc j'ai besoin de votre aide svp.

    Je pensais faire un tableau de thread :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    int main(){
         pthread_t thread[nombreDeCaisse];
         int i;
     
         for(i=0; i<nombreDeCaisse; i++){
                   pthread_create(thread[i], NULL, fonction1, NULL);
                   pthread_create(thread[i], NULL, fonction2, NULL);
                   pthread_create(thread[i], NULL, fonction3, NULL);
         }
     
         for(i=0; i<nombreDeCaisse; i++){
                  pthread_join(thread[i],NULL);
         }
     
         return 0;
    }

    Je ne sais pas si c'est comme ça que l'on fait, merci de bien vouloir m'aider.

    Merci d'avance.

  2. #2
    Membre Expert
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    872
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 872
    Par défaut
    Tu pourrais appeler 3 threads avec la même fonction. Par-contre il faudra que tes threads quittent par eux-même sinon tu vas te retrouver avec une "boucle" infinie. Et pourquoi ne pas virer un thread et faire son traitement dans ton thread principal ? Tu pourras toujours join tes autres threads quand il aura fini.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 23
    Par défaut
    Merci ça marche beaucoup mieux en utilisant une seule fonction, par contre la quand je fais des printf pour voir ce qui se passe, je me retrouve avec des doublons :/

  4. #4
    Membre Expert
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    872
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 872
    Par défaut
    C'est-à-dire ?

  5. #5
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Essaie d'afficher une information unique à chaque thread au début de chaque ligne (son pid?)

  6. #6
    Membre Expert
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    872
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 872
    Par défaut
    @leternel: les threads ne sont pas censés être des processus léger sous linux et donc avoir le même pid que leur processus parent ?

    @mohaskh: il te suffit de passer une info différente à chaque thread si tu veux voir lequel est lequel (un p'tit cast en void* et le tour est joué).

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

Discussions similaires

  1. Besoin d'aide pour utiliser RSA
    Par AsmCode dans le forum Sécurité
    Réponses: 1
    Dernier message: 26/08/2007, 19h11
  2. aide pour utilisation group by
    Par rlnd23 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 22/10/2006, 00h54
  3. Demande d'aide pour utilisation d'un QuickReport
    Par altadeos dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2006, 07h12
  4. de l'aide pour utiliser XSLT
    Par Diallos dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 16/01/2006, 15h55
  5. Besoin d'aide pour utilisation des trie
    Par bluecurve dans le forum Langage
    Réponses: 4
    Dernier message: 29/11/2005, 08h04

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