CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Java] Erreur de boucle très étrange...

NeedHelpJava
NeedHelpJava
Niveau 1
08 mai 2017 à 17:44:32

Bonjour :)

Je fais appel à vous car je rencontre un problème face auquel je ne parviens pas à trouver une explication:

Sur ce lien vous trouverez mon petit code: http://hpics.li/23ef887

Le problème se trouve à l'endroit du commentaire: En effet, lorsque j'exécute le programme comme sur la photo (avec le System.out.println en commentaire), je ne rentre jamais dans la deuxième boucle while. En revanche, lorsque je décommente l'affichage, je peux rentrer dans la deuxième boucle...

Quelqu'un aurait-il une piste ?

Merci d'avance :D

Message édité le 08 mai 2017 à 17:47:04 par NeedHelpJava
darkdark
darkdark
Niveau 9
08 mai 2017 à 18:38:27

C'est dur à dire. Quelle est le reste de l'application ?

Mon premier réflexe serait de regarder comment est initialisé la variable setSpeed, particulièrement si elle n'est pas initialisé dans un autre thread que celui où le code que tu nous as donné est exécuté.

NeedHelpJava
NeedHelpJava
Niveau 1
08 mai 2017 à 18:48:52

Merci déjà pour ta réponse ! Pour expliquer en gros le projet, j'ai un simulateur de voiture qui fait varier la pente de la route d'une voiture et moi je dois lui fournir une accélération pour qu'elle garde une vitesse la plus constante possible. Il s'agit d'un proportional–integral–derivative controller (PID). J'ai un thread avec ma fenêtre, un autre pour le simulateur de voiture et un autre pour le controller (sur lequel je définis setSpeed)

La variable setSpeed est initialisé dans le constructeur de la classe à -1. En revanche, il est vrai que je crée l'objet à partir d'un autre thread (à partir de celui de la fenêtre), en quoi est-ce que cela pourrait avoir un impact ?

Merci encore d'avoir pris de la peine de m'aider, je trouve ça super gentil :D

Message édité le 08 mai 2017 à 18:51:13 par NeedHelpJava
NeedHelpJava
NeedHelpJava
Niveau 1
08 mai 2017 à 19:28:26

Finalement j'ai restructuré tout mon code et j'ai fusionné 2 threads et cela fonctionne ! J'ai pas compris pourquoi avant cela n'allait pas mais donc ne perdez pas votre temps à m'aider, c'est résolu !

Merci encore pour la piste fourni, ça m'a permis de me débloquer !

Une belle soirée à tous, merci :D

darkdark
darkdark
Niveau 9
08 mai 2017 à 21:59:39

Probablement une histoire de concurrence de thread. Les appels pour afficher à l'écran sont généralement assez lent comparé aux autres opérations.

Du coups, j'en déduit que lorsque tu fait ton S.o.p, un autre thread a probablement le temps de modifier ta variable à une valeur > 0. Or, en commentant le S.o.p, la ligne while (setSpeed > 0 ) est effectué avant que la modification ait lieu.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment