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 :

Permuter 2 méthodes indéfiniment


Sujet :

Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 81
    Points : 36
    Points
    36
    Par défaut Permuter 2 méthodes indéfiniment
    Bonjour à tous !

    Ma question est simple : comment alterné simultanément 2 méthodes de manière permanente ?

    Actuellement, je lance Fonction1() , Cette dernière se termine par l'appel de la Fonction2() et cette dernière se termine par l'appel de Fontion1().
    Mais cela ne me semble pas propre, ni correcte : cela créer un récursivité infinie :/

    C'est grave ou cela est correcte comme méthode ?
    Sinon, est-il intéressant de Threader cela ? et si oui comment ?

    Merci !

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    765
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 765
    Points : 1 036
    Points
    1 036
    Par défaut
    Bonjour,

    Pourquoi enchainer à l'infini deux fonctions ?
    Quel est le but de l'opération ?

  3. #3
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Bonjour, cela n'a pas de sens, tu vas vite te rendre compte que la pile d'appels de méthodes va exploser et ton application va lancer une jolie exception.

    Quel est le but de ces fonctions?

    Si le but est de répéter une même opération X foix périodiquement, tu devrais peut-être utiliser une TimerTask.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par BobbyWeb Voir le message
    Ma question est simple : comment alterné simultanément 2 méthodes de manière permanante ?
    ?

    Ça veut rien dire de tellement de façons que je ne vais pas arriver à les compter.
    Oh et puis si, en fait. Ça veut rien dire de 3 façons. Ce qui n'est pas si grand comme chiffre.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 119
    Points : 191
    Points
    191
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Ça veut rien dire de 3 façons. Ce qui n'est pas si grand comme chiffre.
    Pour une question en 8 mots, je trouve que c'est un jolie score .

    Sinon, pour répondre à la question, comme les autres je ne vois pas l'intérêt de l'opération, mais pour éviter de faire péter la pile des appels, je ferais plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    while(true)
    {
       Fonction1() ;
       Fonction2() ;
    }
    M'enfin j'aimerais bien savoir ce que tu comptes faire avec ça...
    On apprend plus en répondant aux questions qu'en les posant.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 81
    Points : 36
    Points
    36
    Par défaut
    Merci à tous pour vos réponses.

    En fait, dans une applications existante (peu nous importe son but), il y 2 méthodes gérant différemment des fichiers selon la jours pairs ou les jours impairs. Cette applications devrait idéalement tourner 24/24 et 7/7.

    Je voudrais donc exécuter pendant 24h ma première méthodes puis pendant 24h ma seconde méthode. Et cela indéfiniment...

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while(true){
      if (on est un jour pair)
        appeler fonction1 qui va travailler pendant 1 minutes par exemple
      sinon
        appeler fonction2 qui va travailler pendant 1 minutes par exemple
    }
    Bref, il faut casser l'aspect "travail en continu" de fonction1 et 2 si possible.

    Si pas possible, alors il faudra que faire ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while(true){
      if (on est un jour pair)
        appeler fonction1 qui va travailler indéfiniment
      sinon
        appeler fonction2 qui va travailler indéfiniment
    }
    fonction aura la forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    des trucs
    une boucle
       des truc
       si flagMachin à false -> return
    avec un thread à part qui, tous les jours, changera flagMachin.

    C'est donc un chouilla plus complexe à réaliser

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    765
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 765
    Points : 1 036
    Points
    1 036
    Par défaut
    A ok, et tu pensais résoudre ça en lançant les méthodes à la suite ?

    Il faudrait en dire plus sur le traitement de ces fichiers ?
    Tu attends la réception d'un fichier, et tu traites d'une façon un jour et d'une autre le lendemain, c'est ça ?
    Ou est-ce que tous les jours ton programme s'execute et traite tout ce qu'il trouve ?

    Tu es sur Unix ?

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 81
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par Jimmy_ Voir le message
    Tu attends la réception d'un fichier, et tu traites d'une façon un jour et d'une autre le lendemain, c'est ça ?
    C'est exactement cela. Finalement le mieux je pense (vu qu'il ne se passera rien la nuit) est le lancer mon programme tôt le matin et l'arrêter tard le soir à l'aide de l'ordonnanceur de Windows Serveur.
    (ou même de l'arrêter, puis le relancer aussitôt à minuit par exemple).

    Ce qui me donne :

    if (jour pair){
    fonction1();}
    else {
    fonction2();}

    Ainsi je suis sûr que chaque fonction tournera toute la journée, et seulement 1 jour sur 2

    Merci quand même pour votre aide

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ouais enfin, pour moi le plus simple serait plutôt de faire descendre ton test


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    while (true){
      attendre un fichier
      if (jourPair())
         traiterFichier1(fichier recu)
      else
         traiterFichier2(fichier recu)
    }

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

Discussions similaires

  1. OnSubjobOk, Méthode tOracleInput est indéfinie
    Par cocaaladioxine dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 07/06/2011, 16h26
  2. méthode addKeyListener() indéfinie
    Par Charlie111 dans le forum Débuter
    Réponses: 6
    Dernier message: 28/11/2008, 03h35
  3. [Singleton] Différences avec méthodes statiques
    Par Franche dans le forum Design Patterns
    Réponses: 1
    Dernier message: 26/02/2003, 17h10
  4. Probleme d'impression avec la méthode TForm->Print()
    Par Kid Icarus dans le forum C++Builder
    Réponses: 13
    Dernier message: 31/07/2002, 14h26
  5. Cryptage en C selon la méthode de césat
    Par shenron dans le forum C
    Réponses: 2
    Dernier message: 31/05/2002, 08h22

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