thread java

thread java - Java - Programmation

Marsh Posté le 08-04-2013 à 10:56:30    

bonjour,
j'ai une classe java qui met bcp de temps pour finir son exécution. afin de gangner du temps je me suis dit que je pourrai utiliser les resultta qu'elle retourne au fur et a mesure de son exécution.  
mes questions sont les suivantes:
1. est ce qu'il faut que la classe devienne un thread pour pourvoir exploiter ses resultat au fur et  à mesur?
2. une variable de cette classe change de valeur pendant l'exécution, est ce que c'est possible de suivre cette variable et l'utiliser en parallèle par une autre classe java (a l'aide d'un getter par exemple)??
 
merci bcp pour votre aide

Reply

Marsh Posté le 08-04-2013 à 10:56:30   

Reply

Marsh Posté le 08-04-2013 à 12:28:02    

Donc une phase de traitement qui prend du temps suivi d'une phase d'exploitation.
1) oui, la gestion des Thread permettra de démarrer l'exploitation alors que le traitement est encore en cours.
2) oui, si une valeur est modifiée (avec le setter) par le traitement, elle pourra être lue en temps réel par l'exploitation.
A priori pas de problème de concurrence (valeur Thread Safe) si un seul Thread écrit la valeur pendant que un seul autre Thread lit.

   



Message édité par willy le kid le 08-04-2013 à 14:59:36
Reply

Marsh Posté le 08-04-2013 à 12:35:27    

Il y a une techno/api qui t'aidera à :
- accélérer le traitement en le parallélisant avec plusieurs 'job' en concurrence
- sous certaine conditions te permettra de reprendre les traitements qui ont planté sans tout recommencer à zéro
- te permet d'avoir une appli java qui fait le traitement, et une autre appli java qui fait l'exploitation, les deux fonctionnant en parallèle

 

C'est Spring Batch. Tu auras à coder, ça demande un effort de concision, mais Spring Batch te fournit l'API (t'oblige à respecter une norme) pour tout ce qui est concurrence et reprise après panne. Cela apporte de la robustesse et de l'effacité et élimine largement les risques de bugs à cause de multi concurrence (normal, cette APi est un standard de fait).


Message édité par willy le kid le 08-04-2013 à 12:37:59
Reply

Marsh Posté le 08-04-2013 à 15:13:07    

merci enormement pour cette reponse.
 
je vais essayer d'appliquer tout ca et je te tiendrai informé

Reply

Marsh Posté le 08-04-2013 à 15:35:42    

Un petit blah blah en français avec demo à télécharger
http://blog-rd.ideotechnologies.com/?p=2021

Reply

Marsh Posté le 10-04-2013 à 12:09:50    

rebonjour,
 
je suis arrivée à resoudre une partie du problem. maintenant que j'ai mon thread entrain de tourner comment est ce que je pourrais récupérer la valeur de ses variables (en temps réel et non après son excéution) par une autre classe (éventuellement un autre thread)
 
les variables qui m'interesse sont un boolean (finished) et un File (nom de fichier).
 
j'aimerai que ma classe detecte lorsque la variable finished et nom de fichier changent dans le premier thread afin de les utiliser dans des traitement. comment faire?
 
ps: j'ai defini des getter et des setter pour ces variables.
 
merci
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed