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

Concurrence et multi-thread Java Discussion :

Programme qui se bloque !


Sujet :

Concurrence et multi-thread Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2021
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2021
    Messages : 6
    Points : 10
    Points
    10
    Par défaut Programme qui se bloque !
    Bonjour a tous !

    J ai créer un programme avec java fx, le programme consiste a lancer un script shell (testscript.sh) via un bouton crée . Au niveau du design tout ce se passe bien , mais mon problème c 'est au niveau du code Java, lors de l' appel du script plus précisément.

    J'utilise " ProcessBuilder" pour lancer le script au niveau de mon code Java. Le script se lance parfaitement (j'obtient les résultats dans le console de mon IDE) mais par contre mon programme est totalement bloqué après l'exécution du script , quelqu'un aurait-il une solution a mon problème ?

    Voici mon code: (nb Je suis sous Linux)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    ProcessBuilder processBuilder = new ProcessBuilder();
            processBuilder.command("/home/Ssparrow/Documents/testscript.sh");
            try{
                Process process = processBuilder.start();
            process.waitFor(0, TimeUnit.SECONDS);
                BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
                String line;
                while ((line = reader.readLine()) != null){
                System.out.println(line);
                }
            }catch(IOException e){
            e.printStackTrace();
            }catch(InterruptedException e){
            e.printStackTrace();
            }
    Je vous remercie

  2. #2
    Membre averti
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mai 2020
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mai 2020
    Messages : 326
    Points : 439
    Points
    439
    Par défaut
    Bonjour,

    Votre interface se bloque car votre script est probablement executé dans le "UI Thread". Tout celà est assez bien expliqué dans cette article en Anglais:

    Implementing long-running tasks on the JavaFX Application thread inevitably makes an application UI unresponsive. A best practice is to do these tasks on one or more background threads and let the JavaFX Application thread process user events.

    -- https://docs.oracle.com/javafx/2/thr...ub-threads.htm

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

Discussions similaires

  1. pthread : programme qui se bloque
    Par code_vx dans le forum POSIX
    Réponses: 1
    Dernier message: 14/08/2013, 08h50
  2. Programme qui se bloque
    Par simpatico dans le forum Débuter
    Réponses: 2
    Dernier message: 04/02/2012, 16h14
  3. Réponses: 4
    Dernier message: 04/01/2008, 11h44
  4. Programme qui bloque avec fonction sort
    Par ultimate_manx dans le forum SL & STL
    Réponses: 10
    Dernier message: 29/11/2007, 20h06
  5. Réponses: 12
    Dernier message: 21/02/2006, 11h47

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