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 :

2 programmes interagi entre eux


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 36
    Par défaut 2 programmes interagi entre eux
    bonjour à tous,

    J’ai un programme lance avec un thread en pause avec une mutex bloquer.
    J’ai un second programme qui va débloquer le thread de l’autre programme

    Voici le code du premier programme lancé.
    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
    #include "stdafx.h"
    #include <windows.h>
    #include <iostream>
     
    using namespace std;
     
    HANDLE mut;
    char text[5000];
     
    unsigned long WINAPI Thread_mutex (void * Param)
    {
    	cout << " lencement thread  \n" ;
    	cout << " WaitForSingleObject thread \n" ;
            WaitForSingleObject(mut,INFINITE);
    	cout << " WaitForSingleObject thread  effectué\n" ;
    	cout << " traitement de la thread\n" ;
    	cout << " ReleaseMutex thread \n" ;
    	ReleaseMutex(mut);
    	cout << " ReleaseMutex thread effectué\n\n" ;
        return 3;
    }
     
    int _tmain(int argc, _TCHAR* argv[])
    {
    	HANDLE hThread[1];
    	unsigned long ThreadId;
    	cout << "\n\n\ncreation de mutex(CreateMutex)" << endl;
    	mut=CreateMutex(NULL,FALSE,(LPCWSTR)"mutex");
            WaitForSingleObject(mut,INFINITE);
    	cout << "main: creation de 1 threads (CreateThread) avec mutex" << endl;
    	hThread[0] = CreateThread(NULL,NULL,Thread_mutex,NULL, NULL, &ThreadId);
    	cout << "ID1 : " << ThreadId << "\n" << endl;
    	cout << "attente de tout les threads (WaitForMultipleObjects)" << endl;
    	WaitForMultipleObjects(1, hThread, TRUE, INFINITE);
    	cout << "fermeture mutex(CloseHandle)" << endl;	
            CloseHandle(mut);
    	cout << "fin" << endl;
    	system ("pause");
    	return 0;
    }
    Et voici le code du second programme.
    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
     
    #include "stdafx.h"
    #include <windows.h>
    #include <iostream>
     
    using namespace std;
     
    HANDLE mut;
     
    int _tmain(int argc, _TCHAR* argv[])
    {
    	cout << "\n\n\ncreation de mutex(CreateMutex)" << endl;
    	mut=CreateMutex(NULL,FALSE,(LPCWSTR)"mutex");
    	cout <<  " ReleaseMutex thread \n"  ;	
    	ReleaseMutex(mut);
    	system ("pause");
    	return 0;
    }
    Et sa fonctionne pas !
    Est-ce que mon résonnement et bon ? et ou est les problème des mon code pour que sa fonctionne pas ??

    merci d'avance
    lermit

  2. #2
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Il me semble que les mutex sont partageable uniquement dans un même programme.Si tu veux synchroniser 2 programmes différents il te faut utiliser les sémaphores nommées.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 36
    Par défaut
    ok merci
    s'est bien avec une sémaphores au lieu d'un mutex

  4. #4
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Citation Envoyé par lermit
    ok merci
    s'est bien avec une sémaphores au lieu d'un mutex
    Oui.

    Mutex/section critique->synchronisation inter-thread
    Semaphore->synchronisation inter-processus

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut
    non
    à la différence des CriticalSections, on peut partager l'accés à une même ressource avec 2 progs en utilisant des mutex.
    ce qui n'est pas forcément les synchroniser.

    Pour ça voir les event.
    http://msdn2.microsoft.com/en-us/aa915030.aspx

  6. #6
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    un event ce n'est pas un mutex, ce sont 2 objets différents.

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

Discussions similaires

  1. Intérraction de différents programmes entre eux
    Par Steider dans le forum Général Python
    Réponses: 6
    Dernier message: 12/02/2014, 09h43
  2. Réponses: 14
    Dernier message: 13/11/2007, 19h46
  3. Soustraire des éléments de tableau entre eux
    Par syl2095 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 20/01/2005, 15h29
  4. 2 SELECT Qui ne s'entendent pas très bien entre eux :(
    Par moutanakid dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/08/2004, 16h46
  5. [File Maker Pro] Compatible entre eux ?
    Par dudu05 dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 06/05/2004, 08h42

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