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

JavaFX Discussion :

JavaFX et pool de threads?


Sujet :

JavaFX

  1. #1
    Membre du Club

    Homme Profil pro
    Hobbyiste
    Inscrit en
    Juillet 2018
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Hobbyiste

    Informations forums :
    Inscription : Juillet 2018
    Messages : 126
    Points : 68
    Points
    68
    Billets dans le blog
    1
    Par défaut JavaFX et pool de threads?
    Bonjour,
    je développe une application musicale, une sorte de boîte à rythmes multi-pistes.
    Pour le moment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Boucle:
      Chercher un moment à jouer au temps actuel en vérifiant s'il n'a pas été joué au passage d'avant (dans la boucle)
      Si trouvé :
         Instancier un thread qui joue le media audio.
      Sinon dors un peu on attend ce qui vient.
    Le problème est une surcharge de Threads et beaucoup de NullPointerException. J'appelle Thread.stop() -- ce qui n'a aucun intérêt.

    En JavaFX on peut lire un média à la fois avec Media.play();

    Mais si je créais une classe ThreadPool et affecter à chaque media (pour moi sample ou mélodie ou échantillon vocal) un thread et mettre la boucle dans ces threads plutôt qu'avoir un thread principal. Est-ce que ça irait mieux ?

    ThreadPool
    Ajouter un morceau sur la piste -> affecter le morceau à un thread disponible. Marquer l'emplacement du thread comme occupé
    Supprimer un morceau de la piste -> mettre fin à la boucle joueuse. Marquer l'emplacement du thread (dans une liste) comme libre

    Pour moi, c'est pas évident les threads. Je ne sais pas si c'est ma machine qui est poussive (Dual Core Celeron) ou si je ne programme pas le logiciel de façon efficace.
    (exemple)

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Le problème est une surcharge de Threads et beaucoup de NullPointerException. J'appelle Thread.stop() -- ce qui n'a aucun intérêt.
    Pour arrêter un thread, il faut faire Thread.interrupt() et, dans la boucle du thread, vérifier son état et en sortir si besoin. Après lorsqu'on fait ça les opérations bloquantes (ex: lecture écriture IO) sont aussi sensée s’arrêter automatiquement d'elles-mêmes en levant une InterruptedException (probablement car elle vérifient elles-mêmes en interne régulièrement l’état du thread courant). Vu qu'on sait pas trop comment tu joues tes sons ni quelles sont les capacités de la lib que tu utilises, difficile de dire ce que sera le comportement dans ton cas.

    Pour le reste je sais pas si un thread pool est la bonne solution ou pas mais pour savoir si ton morceau a deja été joué, ben une liste ou une map synchronisée devrait faire l'affaire, non ?
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. Tutoriel sur les pool de threads
    Par ploxien dans le forum Concurrence et multi-thread
    Réponses: 1
    Dernier message: 09/08/2007, 13h14
  2. Comment recycler un thread ds un pool de thread
    Par yanis97 dans le forum Langage
    Réponses: 2
    Dernier message: 07/03/2006, 18h21
  3. [Info]Création d'un Pool de thread
    Par yanis97 dans le forum Concurrence et multi-thread
    Réponses: 2
    Dernier message: 06/03/2006, 18h23
  4. [Thread]Pool de threads
    Par rlnd23 dans le forum Concurrence et multi-thread
    Réponses: 1
    Dernier message: 14/02/2006, 16h01
  5. Réponses: 3
    Dernier message: 22/11/2005, 19h23

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