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 :

Communication entre threads


Sujet :

Threads & Processus C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 8
    Par défaut Communication entre threads
    Bonjour

    J'ai besoin de votre aide pour la communication entre thread.

    Voilà
    J'ai un thread qui s'exécute en premier
    il établit un lien avec une webcam
    prend une photo
    prend une seconde photo
    si les deux photos sont identiques
    il en prend une autre
    Si elles sont differentes
    il faut prendre une photo
    dire a l'autre thread de prendre une photo
    effectuer la stereovision sur les deux photos

    fin

    deuxième thread
    attend le signal du thread 1
    pour prendre une photo et la lui envoyer
    fin

    mon problème est puis-je utiliser une variable globale mise à un pour dire que les photos sont différentes
    et utiliser une variable globale pour mémoriser la photo du thread 2 pour qu'elle soit utilisée par le thread 1

    Il faudrait être sur que au moment ou la fonction compare repond vrai je puisse bien effectuer la communication sans perdre le processeur

    Si quelqu'un pouvait me conseiller?
    Je vous remercie
    zouzou32300

  2. #2
    Membre chevronné
    Inscrit en
    Août 2004
    Messages
    556
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 556
    Par défaut
    Je ne comprends pas pourquoi tu as besoin de 2 threads pour faire ça. Pourquoi le thread 1 ne ferait pas tout le travail ? o.O

    Ensuite, la méthode que tu as donné devrait fonctionner, tant que tu mets un Mutex sur les variables globales.

    Mais, ta conception est sûrement à revoir et les variables globales peuvent toujours être évitée, par exemple en utilisant des classes pour gérer tes thread plutôt que des fonctions.

    Tu peux ensuite coupler tes 2 threads via des pointeurs ou ce que tu veux afin de les synchroniser.

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 8
    Par défaut
    Merci pour la réponse

    En fait, je reprends le projet d'un ancien étudiant, j'essaie de le décoder en essayant de trouver comment résoudre mon problème.
    J'ai deux caméras et un processeur.
    L'ancien étudiant a créé une fonction thread qui controle une caméra. Il y a un thread par camera .Je ne sais pas si je peux controler les deux caméras dans un seul thread mais je vais tester. Je n'y avais pas pensé.

    Les threads se contentent de récupérer les données des caméras et de l'afficher en streaming.

    Ce que je voudrais moi, c'est pouvoir détecter un mouvement dans la pièce, c'est pour cela que dans le thread 1 je teste les photos. Si celles-ci sont différentes, j'ai du mouvement.
    Si il y a du mouvement, il faut donc faire deux photos simultanément avec les deux caméras pour effectuer la stéréovision.
    C'est pour cela que je cherche à récupérer la photo du thread 2.

    Je vais voir si je peux controler deux caméras dans un thread.
    Merci
    zouzou32300

  4. #4
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut, et bienvenue sur le forum

    J'aurais tendance à abonder dans le sens de JulienDuSud...:

    Selon moi, l'idéal serait presque d'avoir un thread qui se "contente" de prendre les photos sur les deux caméra, et un autre qui s'occupe de la comparaison / stereovision...

    En effet, les manipulations d'images sont gourmandes en temps malgré tout, surtout si la résolution est importante

    Si tu veux que les photos puissent-être prises dans des délais raisonnables (comprend: à une fréquence permettant d'éviter d'avoir trop de saccades à l'affichage), ce n'est pas la prise de photo qu'il faut passer dans un thread à part, mais le traitement de la photo
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  5. #5
    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
    Bonjour,
    Ensuite, pour répondre complètement à ta question de départ, il faudrait aussi savoir ce que tu utilises pour les threads. Les concepts (protection de l'accès concurrent et notification entre thread) sont toujours les mêmes, mais les mécanismes possibles vont différés selon que tu utilises les MFC, Boost.Thread, wxWidget, QT, Win32 et j'en oublie.

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 8
    Par défaut
    Merci pour les conseils
    je pense que vous avez raison.
    je vais essayer de changer mon programme.

    Merci
    Zouzou32300

Discussions similaires

  1. [C#] Communication entre thread
    Par kekesilo dans le forum Windows Forms
    Réponses: 11
    Dernier message: 17/09/2007, 19h48
  2. [thread] communication entre threads
    Par untipy dans le forum Concurrence et multi-thread
    Réponses: 11
    Dernier message: 30/08/2007, 15h47
  3. Problème de communications entre threads
    Par maya09 dans le forum Windows
    Réponses: 1
    Dernier message: 22/02/2006, 22h18
  4. Communication entre thread
    Par JFPS Soft dans le forum Concurrence et multi-thread
    Réponses: 2
    Dernier message: 03/02/2006, 17h38
  5. [c#][threading] communication entre threads
    Par orelero dans le forum C#
    Réponses: 6
    Dernier message: 02/01/2006, 00h42

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