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 :

L'annulation des threads


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Futur Ingenieur en Informatique
    Inscrit en
    Décembre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Algérie

    Informations professionnelles :
    Activité : Futur Ingenieur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 20
    Par défaut L'annulation des threads
    Bonjour !

    pourriez vous me dire ce que fait cette fonction et précisément les fonctions qui se trouvent a l'interieur de la fonction .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     void * thd4 (void *y)
     {
      pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);
      while (compt[3]<100000000) 
      compt[3]++;
      pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
      while (compt[3]<200000000) 
      compt[3]++;
     }

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 129
    Billets dans le blog
    149
    Par défaut
    Bonjour,

    Lorsque l'on ne connait pas une fonction, on regarde sa documentation. Sous Linux, on peut utiliser la commande :
    man nom_de_la_fonction
    Mais, heureusement, notre « ami » Google comprend aussi cette recherche et retourne un résultat sensiblement identique.

    La première commande désactive le fait que le thread soit annulable. Il ne pourra pas être stoppé par un autre thread.
    La seconde commande fait que le thread pourra être annulé à n'importe quel moment.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre averti
    Homme Profil pro
    Futur Ingenieur en Informatique
    Inscrit en
    Décembre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Algérie

    Informations professionnelles :
    Activité : Futur Ingenieur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 20
    Par défaut
    Je vous remercie de m'avoir répondu

    Biensure que je suis passé chez Mr Google avant de poster ce message
    j'ai jeté un oeil sur la documentation et je l'ai presque compris .

    mais le probleme c'est lors de l'execution de cette fonction le thread aura pour valeur 2000000 pourtant avant d'evaluer la boucle2 on a appelé la fonction pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL) ce qui veut dire que normalement la boucle 2 ne sera pas executé puisque que le thread sera annulé immediatement .

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 129
    Billets dans le blog
    149
    Par défaut
    Je loupe peut être quelque chose, mais pourquoi sera t-il annulé directement ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre averti
    Homme Profil pro
    Futur Ingenieur en Informatique
    Inscrit en
    Décembre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Algérie

    Informations professionnelles :
    Activité : Futur Ingenieur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 20
    Par défaut
    sincerement je n'ai aucune idée je ne sais pas pourquoi il execute la 2eme boucle .
    voici le screenshot de l'execution c'est le dernier compteur qui vaut 2000000.

    Nom : Capture du 2015-12-06 22:45:35.png
Affichages : 178
Taille : 3,9 Ko


    c'est un tp a rendre demain c'est le dernier.
    Je vous serais très reconnaissant si vous pouviez m'aider.

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 129
    Billets dans le blog
    149
    Par défaut
    Et il n'y a aucune raison que le thread s'arrête. Certes vous avez changer son état pour qu'il soit annulable, toutefois, vous ne faites aucun ordre d'annulation (avec pthread_cancel() dans le thread parent). Donc, le thread, n'ayant aucun ordre de s'annuler, ne s'annule pas et continue tranquillement son travail.

    Note : heureusement que les threads ne s'arrête pas sans raison et inopinément .
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/02/2004, 12h50
  2. Une question à propos des thread
    Par tscoops dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/11/2003, 14h03
  3. Variable globale / Propriété des threads
    Par rgarnier dans le forum XMLRAD
    Réponses: 4
    Dernier message: 03/10/2003, 10h49
  4. [reseaux] Gestion des threads en perl
    Par totox17 dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 28/11/2002, 09h40
  5. Programmer des threads
    Par haypo dans le forum C
    Réponses: 6
    Dernier message: 02/07/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