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

Java Discussion :

Interruption d'un programme.


Sujet :

Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2007
    Messages : 81
    Points : 56
    Points
    56
    Par défaut Interruption d'un programme.
    Bonjour,
    je dois développer une application java permettant de calculer PI.
    J'ai donc repris du code sur internet et mon calcul se fait sans souci.

    La difficulté survient lorsque je dois inserer une interruption à ce programme, pour ensuite enregistrer les valeurs temporaires dans un fichier et reprendre le calcul là ou il s'etait arreté un autre jour.

    Je n'ai aucune connaissance en interruption.
    En revanche, je sais écrire dans un fichier.

    Je n'ai pas les classes sur moi mais dans la soirée, je posterai mon projet.
    J'espère que vous voudrez bien prendre le temps de m'aider, de completer mon code ou simplement de m'expliquer clairement comment marchent les interruptions.
    De même, si vous avez des exemples de projets similaires desquels je pourrai m'inspirer, je suis preneur.

    Merci a tout ceux qui m'aideront

  2. #2
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Bonjour,

    Interrompre à n'importe quel moment, cela me paraît difficile.
    Par contre, ce que tu peux faire, c'est de définir des étapes et "sauvegarder" ton résultat à chaque étape.
    Pour l'arrêt, deux possibilités:
    - soit tu arrêtes vraiment le process de suite et tu perds ce qui a été fait depuis la dernière étape
    - soit tu émets une demande d'interruption et le calcul s'arrête à l'étape suivante. tu ne perds rien, mais tu peux potentiellement attendre longtemps si tu a des étapes longues.

    Tu dois certainement avoir une classe Serializable dans ton calcul (ou qui pourrait l'être). Tu ajoutes à cette classe un champ ('state' par exemple) qui te permettra de savoir à quelle étape tu étais.
    A ta classe qui pilote le calcule, tu ajoutes une méthode qui dois relancer le calcul (qui s'appuiera sur ton champ 'state').

    Et donc à chaque étape, tu sérialise ton objet dans un fichier que tu pourras désérialiser au moment de relancer le calcul.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Points : 653
    Points
    653
    Par défaut
    C'est un peu abstrait sans code, mais je suppose que ton algorithme fonctionne de manière itérative. Dans tous les cas, il te faudra lancer ton calcul dans un Thread, et vérifier, à chaque itération de ton calcul, l'état d'un drapeau que tu passeras à true ou false quand tu voudras arrêter ton calcul.

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2007
    Messages : 81
    Points : 56
    Points
    56
    Par défaut
    Bonsoir,
    d'abord, merci pour vos deux réponses qui me donnent l'orientation de la manière dont je doit procéder.
    Comme convenu dans mon premier message, je vous passe les sources de ce que j'ai déjà créé.

    Source du projet

    Toute critique me permettant d'avancer dans mon projet et d'apprendre de manière plus personnelle sera la bienvenue.

    Merci à tous.

  5. #5
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Disons que devoir télécharger les sources, c'est assez contraignant.
    En tout cas, moi, ça me bloque.

    Essaie de prendre du recul, et expose nous ce qui te poses problème.

    Y a-t-il quelque chose qui te semblais difficile dans la réponse que j'ai t'ai faite?

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2007
    Messages : 81
    Points : 56
    Points
    56
    Par défaut
    Y a-t-il quelque chose qui te semblais difficile dans la réponse que j'ai t'ai faite?
    Bah c'est vrai que quand tu dis qu'il faut arrêter entre deux étapes, je trouve ça logique et je pense de la même manière mais avec l'algo que j'ai trouvé, le calcul se fait dans une boucle ("for" je crois, j'ai toujours pas les sources devant moi). Donc ce qui me pose réellement problème c'est de programmer le fait que lorsque je clique sur un bouton "arrêter" le programme sorte de cette boucle et me retourne les valeurs courantes...

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Points : 909
    Points
    909
    Par défaut
    Citation Envoyé par 18carats Voir le message
    ce qui me pose réellement problème c'est de programmer le fait que lorsque je clique sur un bouton "arrêter" le programme sorte de cette boucle et me retourne les valeurs courantes...
    Et c'est à ce problème qu'a déjà répondu verbose:
    Citation Envoyé par verbose Voir le message
    il te faudra lancer ton calcul dans un Thread, et vérifier, à chaque itération de ton calcul, l'état d'un drapeau que tu passeras à true ou false quand tu voudras arrêter ton calcul.

    (bravo à moi pour cette réponse hautement constructive \o/)

Discussions similaires

  1. Interruption d'un programme par SIGINT
    Par Nicolae dans le forum Administration système
    Réponses: 2
    Dernier message: 30/09/2011, 15h35
  2. Liste des interruptions - pmode - émulation - programmation matériel
    Par Voldemort09 dans le forum x86 32-bits / 64-bits
    Réponses: 4
    Dernier message: 05/08/2008, 16h16
  3. interruption d'un programme java sans exception
    Par laurent.c123 dans le forum Général Java
    Réponses: 9
    Dernier message: 14/12/2007, 10h10
  4. [Débutant] Interruption d'un programme et sauvegarde de données
    Par VanessaDu67 dans le forum MATLAB
    Réponses: 6
    Dernier message: 26/10/2007, 15h44
  5. interruption programme
    Par drpark dans le forum Windows
    Réponses: 2
    Dernier message: 11/10/2005, 07h20

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