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

Threads & Processus C++ Discussion :

mettre un thread en "pose"


Sujet :

Threads & Processus C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 24
    Par défaut mettre un thread en "pose"
    Bonjour,

    Je découvre les threads en C++.

    J'arrive à en créer grâce à la librairie windows.h
    comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DWORD threadID;
    CreateThread(NULL, 0, Thread1, NULL, 0, &threadID);


    J'ai une variable globale. Le thread créé et le main devront la modifier. Je devrais donc "bloquer" le thread.

    j'ai entendu parler de mutex ???

    Avez vous un bon tuto pour mon cas précis ou un simple exemple ( ca devrais pas être compliqué mais je ne trouve pas d'exemples dans mon cas :-/ )

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Salut,
    Pour commencer : Le multithreading
    MSDN : Synchronization

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 24
    Par défaut
    Merci

    En fait je devais bien utiliser des mutex ( j'ai une variable globale qui est utilisée par 2 threads )

    voici le code pour ceux que ca interesse :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    #include "stdafx.h"
    #include <windows.h>
    #include <iostream>
     
     
    HANDLE hMutex;
    using namespace std;
     
     
     
    DWORD WINAPI Thread1(LPVOID lpParameter)
    {
    int i;
    while(1){
    WaitForSingleObject( hMutex, INFINITE );
    for(i=0;i<30;i++){
    			cout << i <<endl;
    Sleep(100);
    }
    ReleaseMutex( hMutex );
     
    }
     
     
    int _tmain(int argc, _TCHAR* argv[])
    {
     
    hMutex = CreateMutex( NULL, FALSE, NULL );
    DWORD threadID;
    CreateThread(NULL, 0, Thread1, NULL, 0, &threadID);
     
     
    while(1){
     
    Sleep(1000);
    WaitForSingleObject( hMutex, INFINITE );
    cout <<"_________suspend"<<endl;
    Sleep(1000);
    ReleaseMutex( hMutex );
    cout <<"_________resume"<<endl;
     
    }
    }

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

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