Partage
  • Partager sur Facebook
  • Partager sur Twitter

Multi-threading et probème associé

    20 juin 2017 à 10:26:37

    Bonjour,

    J'ai un programme en multi-thread qui créent 2 instances de 2 classes différentes héritant chacune d'une même classe.
    Lors de l’exécution de ce programme, chacune de ses classes utilisent une méthode de la classe mère en même temps ce qui m'arrange peu.

    J'aurai voulu savoir comment éviter cela ?
    La synchronisation ne semble pas marcher...

    Bonne journée,
    Xav'

    • Partager sur Facebook
    • Partager sur Twitter
      20 juin 2017 à 11:05:12

      Merci de cette réponse, c'est ce que j'ai tenté de faire mais cela ne fonctionne pas.


      En effet, il s'agit bien de 2 instances d'objets différents qui appellent une même méthode d'une classe héritée.
      La synchronisation (si j'ai bien compris) ne marche que sur une même instance. Sauf qu'ici ce n'est pas le cas.

      • Partager sur Facebook
      • Partager sur Twitter
        20 juin 2017 à 11:11:48

        Peut tu montre le code ou bien la partie de la méthode que tu veux synchroniser, si le problème est sur une méthode tu synchronise la méthode, si le problème est sur un attribut utilisé dans la méthode, tu synchronise l'attribut.
        • Partager sur Facebook
        • Partager sur Twitter
          20 juin 2017 à 11:21:25

          En tout cas, ça sent la très mauvaise organisation de code. Il n'y a généralement aucune raison qu'un type dont les instances sont accédées de manière concurrente soit dérivé, et il y a encore moins de raison que les instances d'un tel type se retrouvent avec des soucis de synchronisations entre elles.

          -
          Edité par Ksass`Peuk 20 juin 2017 à 11:21:55

          • Partager sur Facebook
          • Partager sur Twitter

          Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

            23 juin 2017 à 16:03:28

            Ksass`Peuk a écrit:

            En tout cas, ça sent la très mauvaise organisation de code. Il n'y a généralement aucune raison qu'un type dont les instances sont accédées de manière concurrente soit dérivé, et il y a encore moins de raison que les instances d'un tel type se retrouvent avec des soucis de synchronisations entre elles.

            -
            Edité par Ksass`Peuk 20 juin 2017 à 11:21:55


            Si c'est un membre statique oui.
            • Partager sur Facebook
            • Partager sur Twitter
            Error 2006, MySQL server has gone away
              23 juin 2017 à 16:21:20

              EclipseOnFire a écrit:

              Si c'est un membre statique oui.

              Ce qui n'est définitivement pas l'idée du siècle.

              • Partager sur Facebook
              • Partager sur Twitter

              Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

                23 juin 2017 à 16:31:41

                Il essaie d'apprendre, faut pas le miner comme ça le pauvre ! (même si ta réponse m'a beaucoup fait rire)

                Après il aurait pu faire, je sais pas moi, un compteur d'instances ou un truc du genre, c'est un bon entraînement ça !

                • Partager sur Facebook
                • Partager sur Twitter
                Error 2006, MySQL server has gone away
                  23 juin 2017 à 16:40:56

                  Quitte à s'entraîner, je préfère largement proposer des exercices où la concurrence est :

                  • adaptée,
                  • faisable sans se prendre le chou,
                  • un cas d'usage cohérent.

                  Typiquement, commencer à dériver des classes accessibles de manière concurrent, avec du partage improbable dedans, c'est s'ajouter de la difficulté qui même sans ça est déjà suffisamment difficile. Surtout que ce ne sont pas les exemples qui manquent :

                  • produire une queue thread-safe : synchronized, puis mutex, puis sémaphore, puis éventuellement lock-free,
                  • la même chose avec une pile,
                  • la même chose avec un arbre binaire en minimisant les sections critiques,
                  • résoudre le dîner des philosophes,
                  • politiques avec n-écrivain/lecteur,
                  • politiques d'accès à une ressource avec priorisation.

                  C'est que des problèmes complexes, qui ne nécessitent pas d'aller faire des trucs tordus.

                  (PS : les compteurs d'instance sont toujours faussés).

                  -
                  Edité par Ksass`Peuk 23 juin 2017 à 16:42:13

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

                    23 juin 2017 à 17:11:08

                    Tu as raison.
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Error 2006, MySQL server has gone away

                    Multi-threading et probème associé

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown