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

Multithreading Discussion :

Partage de conteneur


Sujet :

Multithreading

Vue hybride

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 198
    Par défaut Partage de conteneur
    Bonjour à tous,

    J'ai lu que le conteneur Qqueue est ré-entrant et que c'est plus "fort" que safe-thread.
    Deux threads différents partageant un pointeur vers un Qqueue peuvent-ils l'un faire des enqueue() et l'autre des dequeue() sans besoin d'utiliser une technique de synchronisation (mutex, sémaphore) ?

  2. #2
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Par défaut
    Salut,

    Pour moi si tu as une Qqueue partager entre 2 threads tu dois protéger l’accès via de la synchro sinon tu risques d'avoir des problèmes.

    Regarde ce lien ici.
    Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
    N'hésitez pas à me contacter par MP.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 198
    Par défaut
    Merci pour le lien, c'est plus clair.
    Donc Qqueue est ré-entrant mais pas thread-safe.
    Existe-il des conteneurs Qt qui soient thread-safe ?

    Quel problème pourrai-t-on avoir, on accède jamais simultanément au même élément de la file ?

  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
    Citation Envoyé par DSGSLA Voir le message
    J'ai lu que le conteneur Qqueue est ré-entrant et que c'est plus "fort" que safe-thread.
    QUi t'as dit cela

    Citation Envoyé par DSGSLA Voir le message
    Quel problème pourrai-t-on avoir, on accède jamais simultanément au même élément de la file ?
    Un gros plantage ou erreur mémoire lors d'un push et pop par deux thread différent.

    Que cherche tu as faire?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 198
    Par défaut
    Je veux envoyer (unidirectionnel) des Qvariant (donc de taille variable) d'un thread à un autre.

  6. #6
    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
    Citation Envoyé par DSGSLA Voir le message
    Je veux envoyer (unidirectionnel) des Qvariant (donc de taille variable) d'un thread à un autre.
    Pourquoi ne pas utiliser les signal/slot?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 198
    Par défaut
    Pourquoi ne pas utiliser les signal/slot?
    Parce que le type de classes thread et leur nombre est variable. Je ne peut les déterminer qu'à l'exécution. Comment effectuer les connect dans ce cas ?
    De plus les threads peuvent être chaînés, comment synchroniser les flux entrants et sortant ainsi que les calculs à faire ?

  8. #8
    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
    Citation Envoyé par DSGSLA Voir le message
    Parce que le type de classes thread et leur nombre est variable. Je ne peut les déterminer qu'à l'exécution. Comment effectuer les connect dans ce cas ?
    De plus les threads peuvent être chaînés, comment synchroniser les flux entrants et sortant ainsi que les calculs à faire ?
    peut tu expliquer un peu le problème.

    Peut être que qreadwritelock peut t'aider
    http://qt.developpez.com/doc/latest/qreadwritelock.html

    Connais tu QtConcurrent?

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

Discussions similaires

  1. [Kylix] partager fonctions
    Par RezzA dans le forum EDI
    Réponses: 1
    Dernier message: 16/03/2003, 16h02
  2. [VB6] [Réseau] Connexion et partage de données
    Par tomnie dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 21/10/2002, 18h12
  3. Partager son disque
    Par tintin22 dans le forum Web & réseau
    Réponses: 2
    Dernier message: 16/09/2002, 00h34
  4. Réponses: 4
    Dernier message: 13/05/2002, 16h43
  5. Peux t'on créer une copie locale de l'objet partagé?
    Par Anonymous dans le forum CORBA
    Réponses: 8
    Dernier message: 16/04/2002, 16h20

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