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

Qt Discussion :

Conflit entre 2 threads - besoin d'un éclaircissement


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 164
    Par défaut Conflit entre 2 threads - besoin d'un éclaircissement
    Bonjour,
    j'ai fait fâce il y a quelques jours a un petit problème de conflits entre threads que j'ai pu résoudre mais sans vraiment comprendre l'origine de celui-ci (manque de connaissance en multithreading)

    Mon appli effectue de lourds calculs sur du traitement d'image et pour l'accélérer j'utilise 2 threads de calcul (l'un dans le main l'autre à l'aide d'un QThread) qui effectuent le meme traitement sur 2 sous-partie de l'image.

    Le traitement se trouvait à l'origine dans une fonction appartenant à un namespace créé par moi même, les 2 threads de calcul appelaient donc la même fonction qui prenait en entrée un pointeur sur un même objet. Dans le traitement des champs de l'objet sont lus et d'autres sont modifiés (en prenant soin d'utiliser des mutex). Dans cette configuration le soft ne fonctionnait pas et c'est là que je n'ai pas compris la raison?!

    Pour remédier à ce problème j'ai créé une classe implémentant la fonction de traitement, et pour chaque thread je travaille sur 2 instances différentes de cette classe, là tout fonctionne.

    Quelqu'un pourrait m'éclaircir?
    merci

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Salut

    le soft ne fonctionnait pas
    c'est à dire?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 164
    Par défaut
    l'appli plantait dès que les 2 threads travaillaient en parallèle mais je ne me souviens plus exactement du message d'erreur en mode debug

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Tu devais surement avoir oublié de protéger quelque chose.

  5. #5
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Si les 2 threads utilisaient une même ressource en même temps, selon ce qu'ils y font, ça peut effectivement faire planter ton application.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 164
    Par défaut
    admettons que j'ai bien protégé toutes les ressources auxquelles j'accède dans chacun des threads, est-ce que le plantage ne peut pas venir du fait que les 2 threads utilisent une même fonction?

    si ça n'est pas le cas, en effet il est possible que j'ai oublié de tout protéger.

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/12/2009, 16h12
  2. [Thread] besoin sleep(delay)... car java mobilise CPU
    Par thierry198 dans le forum Concurrence et multi-thread
    Réponses: 5
    Dernier message: 27/09/2004, 17h46
  3. Synchronisation entre 2 threads
    Par bodbod dans le forum C++
    Réponses: 8
    Dernier message: 20/08/2004, 18h29
  4. conflit entre couleurs
    Par khayyam90 dans le forum OpenGL
    Réponses: 2
    Dernier message: 03/07/2004, 18h00
  5. [Technique] Conflits entre plusieurs requêtes
    Par Neowile dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 24/03/2003, 09h37

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