Thread, quand les utiliser ?

Thread, quand les utiliser ? - Java - Programmation

Marsh Posté le 17-04-2009 à 10:39:34    

Bonjour,
 
J'ai un peu de mal à déterminer quand utiliser un Thread ou pas, je fais des trucs tout simple pour l'instant et j'ai du mal à voir l'interet des Thread et surtout quand les utiliser, est ce qu'il y a des trucs à savoir sur "à quel moment utiliser un Thread ?"
 
J'ai compris qu'un Thread créer une autre "pile" en gros, théoriquement j'arrive à situer ce que représente une pile etc... mais après dans la pratique c'est autre chose et j'ai du mal à savoir quand je dois utiliser un Thread.
 
Je sais comment utiliser les threads, du moins je pense, généralement j'implémente l'interface Runnable et je déclenche mon thread en créant une instance de Thread et en l'initialisant avec l'objet qui implémente Runnable comme ceci :

Code :
  1. class Test
  2. {
  3. Thread monThread = new Thread(new Animation());
  4. public Test() {
  5.   monThread.start();
  6. }
  7. class Animation implements Runnable {
  8. public void run()
  9. }
  10.    //...
  11. }
  12. }
  13. }


 
 mais je n'arrive pas à déterminer, quand/dans quel type d'application utiliser un Thread s'impose.
 
Avez vous des conseils ou des astuces à me donner pour m'éclairer ?


Message édité par manux69 le 17-04-2009 à 10:48:49

---------------
Moi, j'ai baisé une femme... Je lui ai filé un rancard, et je n'y suis pas allé !     Coluche.
Reply

Marsh Posté le 17-04-2009 à 10:39:34   

Reply

Marsh Posté le 17-04-2009 à 12:09:39    

Si tu fais une application comprenant une interface graphique par exemple, il peut être utile de mettre les opérations susceptibles de prendre pas mal de temps dans un nouveau thread, histoire de ne pas bloquer le thread de l'UI. De même si tu veux paralléliser plusieurs traitements tu dois utiliser des threads séparés... Après c'est à toi de voir en fonction de ce que fait ton programme dans quel cas tu devrais utiliser des threads [:spamafote]


---------------
Fresh
Reply

Sujets relatifs:

Leave a Replay

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