Communauté Informatique NDFR.net : [JAVA] stocker un appel de procédure pour l'éxécuter plus tard - Programmation (C/C++, Delphi, VB, etc.)
Reply
[JAVA] stocker un appel de procédure pour l'éxécuter plus tard
Thread Tools Display Modes
  #1  
Old 26-04-2006, 18:11
Cougar's Avatar
Cougar Cougar is offline
Membre senior
 
Join Date: 16-09-2001
Location: Orléans
Age: 39
Posts: 3,850
Send a message via MSN to Cougar
[JAVA] stocker un appel de procédure pour l'éxécuter plus tard

Si y a des experts java parmis vous, je suis prenneur
Voilà ce que je voudrai faire :
j'ai une liste de tâches à exécuter dans laquelle je voudrai stocker directement la procédure à laquelle je veux faire appel.

Par exemple dans ma liste :

Acheter(pain) <--- Acheter(viande) <--- PayerPar(carte_bleu) <--- etc

chaque case représente une procédure, et j'aimerai donc pouvoir parcourir cette liste et exécuter la tâche qui convient au moment où je le veux (par exemple je fais pas Acheter(pain) avant le 24/06/2006 )

Donc l'idée ça serait de stocker quelque part cette "appel" et pouvoir l'exécuter au bon moment et ce essentiellement pour éviter de devoir faire un gros switch du genre :
si procedure.type = "Acheter" alors je sais que le paramètre est un objet Aliment qui est stocké dans tel variable de la classe tâche .

En écrivant ça je me rend compte que ça ressemble un peu au principe d'un Scheduler simplifié, mais je pense pas qu'on puisse interagir avec sur celui de la JVM.
__________________
Reply With Quote
  #2  
Old 26-04-2006, 18:37
Benjy's Avatar
Benjy Benjy is offline
Administrateur
 
Join Date: 21-08-2001
Location: Rueil Malmaison (92)
Age: 43
Posts: 2,043
Send a message via MSN to Benjy
http://www.onjava.com/pub/a/onjava/2...10/quartz.html

Sinon dans Google si tu tapes "JVM scheduler" ya pas mal de trucs sur le thread scheduling.
__________________
Merci de lire et de respecter les règles et d'utiliser la .
Reply With Quote
  #3  
Old 26-04-2006, 23:31
Cougar's Avatar
Cougar Cougar is offline
Membre senior
 
Join Date: 16-09-2001
Location: Orléans
Age: 39
Posts: 3,850
Send a message via MSN to Cougar
J'oriente mes recherches vers le package reflection en espérant réussir à faire quelque chose
http://www.laltruiste.com/document.p...ospection.html
http://ricky81.developpez.com/tutori...pi/reflection/
__________________
Reply With Quote
  #4  
Old 27-04-2006, 09:24
jboga jboga is offline
Inscrit
 
Join Date: 23-07-2004
Location: Vincennes
Age: 47
Posts: 115
Tu as peut-être déjà trouvé, mais effectivement le package "reflection" peut de permettre de faire ce genre de choses.
Par contre tu devras forcément stocker la classe de ton objet, pour pourvoir le caster au bon moment et invoquer les bonnes méthodes dessus.
Reply With Quote
  #5  
Old 27-04-2006, 14:15
fonji fonji is offline
Membre senior
 
Join Date: 01-07-2003
Age: 38
Posts: 1,627
Quote:
Originally Posted by jboga
Par contre tu devras forcément stocker la classe de ton objet, pour pourvoir le caster au bon moment et invoquer les bonnes méthodes dessus.
Et que vive "instance of"
Reply With Quote
  #6  
Old 27-04-2006, 20:23
jboga jboga is offline
Inscrit
 
Join Date: 23-07-2004
Location: Vincennes
Age: 47
Posts: 115
Quote:
Originally Posted by fonji
Et que vive "instance of"
Oui mais avec "instance of" tu auras un truc du genre :

Code:
if(A instance of ClassA) 
{
}
else if(A instance of classB)
{
}
else if(A instance of classC)
{
}
else if(A instance of classD)
{
}
Ce que veut, je crois, éviter Cougar.
Alors qu'avec la "reflection", si tu as la methode que tu veux appeler, tu peux faire un truc du genre (je n'ai plus l'API en tête) :

Code:
method.invoke(maClass.cast(monObjet), new Object[]{les parametres de la methodes}
monObjet est de type Object, c'est donc générique (sous réserve d'avoir la bonne méthode à appeler).
Enfin bon, chacun a sa façon de faire, et faut faire ce qui convient le mieux à chacun .
Le package "reflection" est très intéressant et très utile .
Reply With Quote
  #7  
Old 28-04-2006, 15:54
renaud91 renaud91 is offline
Membre junior
 
Join Date: 17-06-2005
Age: 48
Posts: 14
Un petit exemple

Bonjour,

tu trouveras un petit exemple dans le fichier joint.
Dans mon exemple les tâches sont exécutées les unes à la suite des autres dans une thread. Dans ton cas utilises quartz comme cité plus haut mon code n'est pas thread safe, et ajuste le code.

J'ai codé ça vite, c'est largement perfectible.
N'hésites pas si tu as des questions.

A+,
Renaud.
Attached Files
File Type: zip src.zip (3.1 KB, 3 views)
Reply With Quote
  #8  
Old 28-04-2006, 16:33
Cougar's Avatar
Cougar Cougar is offline
Membre senior
 
Join Date: 16-09-2001
Location: Orléans
Age: 39
Posts: 3,850
Send a message via MSN to Cougar
Merci beaucoup, pile ce que je cherchais

Par non thread safe tu sous entends que si, dans la ListeMagique il y a une tâche qui doit lire la variable et une autre la modifier, rien n'empêche que ça se produise en même temps ?
A ce moment là il "suffirait" d'ajouter une sémaphore dans la procédure que l'on doit exécuter, qui avant de modifier, attendra que l'autre procédure ait finie de lire ?
__________________
Reply With Quote
  #9  
Old 28-04-2006, 21:11
renaud91 renaud91 is offline
Membre junior
 
Join Date: 17-06-2005
Age: 48
Posts: 14
Oui

Salut,

oui c'est exactement ce que je voulais dire

Bonne continuation,
Renaud.
Reply With Quote
Reply

Bookmarks


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Test de la solution de stockage réseau Netgear SC101 Cougar Articles 26 30-08-2006 20:42
Présentation de Windows Longhorn Build 4051 (PDC03) Werner Articles 155 22-12-2005 01:29
Test du routeur (WGT624v2) et de la carte PCMCIA (WG511T) Wifi Netgear Fred Articles 42 31-08-2004 17:44
Le SP1 pour Windows Server 2003 disponible ? Werner Actualité 9 18-06-2004 21:05
Windows .NET 2003 Werner Articles 0 19-10-2002 16:10

All times are GMT +2. The time now is 12:38.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.