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

Linux Discussion :

Pause et reprise d'un thread


Sujet :

Linux

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 71
    Points : 61
    Points
    61
    Par défaut Pause et reprise d'un thread
    Bonjour !

    Voila, afin de m'aiguiller vers telles ou telles techniques de programmation, je voudrai savoir si on peut avec fiabilité mettre en pause un thread puis le faire repartir ( et j'insiste sur la fiabilité! ). Si tel est le cas j'aimerai connaître les appels systèmes et la bibliothèque qui les contient ou la logique de la chose.

    merci !

  2. #2
    Membre expérimenté
    Avatar de nyal
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    622
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2002
    Messages : 622
    Points : 1 428
    Points
    1 428
    Par défaut
    Pour cela, tu peux utiliser les semaphores POSIX.
    Elles sont presentes dans la librairie pthread.

    Tu initialises une semaphore avec sem_init
    Ensuite, tu utilises sem_wait dans un thread. Ce qui va le bloquer.
    Tu pourras le debloquer en utilisant sem_post dans un autre thread.

    C'est un exemple des semaphores. Mais ca te montre que tu peux faire ce que tu souhaites.

  3. #3
    Membre habitué Avatar de Metal Tom
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 119
    Points : 129
    Points
    129
    Par défaut
    Si t'utilises les threads POSIX, autant utiliser les mutex POSIX. pthread_mutex_t avec les fonctions pthread_mutex_lock et pthread_mutex_unlock sans oublier de faire le pthread_mutex_init avant et le pthread_mutex_destroy après. Si c'est juste pour arrêter et reprendre c'est mieux que les sémaphores parce que ça doit être plus léger je pense.
    Mais par contre les sémaphores on peut faire plus de choses avec parce qu'il y a un compteur qui lui est associé. A toi de voir.
    Tom

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 71
    Points : 61
    Points
    61
    Par défaut merci !
    salut, et merci d'avoir répondu à mes qestions !!!

    Mais peut être une dernière pour la route :

    je compte utiliser le langage c++. Peut on passer un objet en paramètre au thread lors de son initialisation ?

    merci encore.

  5. #5
    Responsable technique

    Avatar de Anomaly
    Homme Profil pro
    Directeur
    Inscrit en
    Juin 2003
    Messages
    10 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Directeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 338
    Points : 130 354
    Points
    130 354
    Billets dans le blog
    1
    Par défaut
    Bien sûr. Tu peux passer un pointeur, donc a priori un pointeur sur ce que tu veux
    Responsable technique forum & site

    Si ce message (ou un autre) vous a aidé et/ou vous semble pertinent, votez pour lui avec

  6. #6
    Membre habitué Avatar de Metal Tom
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 119
    Points : 129
    Points
    129
    Par défaut
    Avec les threads POSIX d'ailleurs tu ne peux passer qu'un seul argument (qu'il faut caster en void *). Quand on veut en passer plusieurs généralement on fait une struct qui contient ce qu'on veut et on lui passe.
    Et la thread peut aussi retourner un résultat de type void * aussi.
    Tom

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

Discussions similaires

  1. Threads : pause et reprise avec JButton
    Par bioinfx6996 dans le forum Général Java
    Réponses: 5
    Dernier message: 02/04/2008, 16h39
  2. Interruption et reprise d'un Thread
    Par michaeljeru dans le forum Concurrence et multi-thread
    Réponses: 11
    Dernier message: 12/04/2007, 18h17
  3. arret et reprise d'un thread
    Par voyageur dans le forum Windows Forms
    Réponses: 13
    Dernier message: 09/04/2007, 10h39
  4. Interruption et reprise d'un Thread
    Par Nuro dans le forum Concurrence et multi-thread
    Réponses: 1
    Dernier message: 28/02/2007, 21h34
  5. pause et reprise de thread
    Par raggadoll dans le forum C++Builder
    Réponses: 5
    Dernier message: 12/07/2003, 10h50

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