implements Runnable ?? - Java - Programmation
Marsh Posté le 04-02-2004 à 14:02:24
Ca revient exactement au même. Quand tu fait un extends Thread, tu redéfini la méthode run(). Quand tu fais un implements Runnable, tu defini la méthode run() de la même manière, puis tu fais un new Thread(tonRunnable), et après ça s'utilise exactement de la même manière, puisque la méthode run() de Thread appelle la méthode run() du Runnable passé en argument au constructeur.
Marsh Posté le 05-02-2004 à 11:41:51
Le seul interet, c qu'en java tu ne peux deriver que d'une seule classe, contrairement au c++ (extends)....
Par contre tu peux implementer moultes interfaces (implements) d'ou l'utilité de Runnable...
Marsh Posté le 05-02-2004 à 13:43:15
Runnable représente l'action à effectuer par un thread. La classe Thread représente le thread en lui même.
La plupart du temps c'est mieux d'implémenter Runnable que d'étendre Thread. Déjà d'un point de vue logique : Ce qu'on veut faire c'est faire un traitement parralèle, pas étendre la classe Thread.
Et d'un point de vue pratique : ca laisse la possibilité d'hériter d'autre chose.
Marsh Posté le 05-02-2004 à 13:48:10
chrisbk a écrit : qu'apporte thread alors ? |
ben Thread ça permet de faire tourner ton Runnable... la classe Thread telle qu'elle est conçue dans le jdk est faite pour etre utilisée avec un Runnable dont elle appelle la méthode run(). Certain ont jugé plus simple et plus rapide de directement redefinir la méthode run() de Thread pour qu'elle fasse le boulot directement ; ça tient tout autant debout, mais c'est moins souple. Personnellement, je ne derive jamais de Thread, j'implémente Runnable.
Marsh Posté le 05-02-2004 à 13:49:33
chrisbk a écrit : qu'apporte thread alors ? |
ben thread c'est un thread
c'est l'instance d'execution.
Quand tu hérite de thread, tu spécialises la classe générale thread pour le cas du traitement que tu veux executer.
Quand tu implémentes Runnable et que tu le passes à un thread, tu utilise la classe générale thread pour executer un traitement particulier.
Marsh Posté le 04-02-2004 à 13:45:24
Bonjour,
Je dois avoué que le "implements Runnable" me perturbe...
Je suis un habitué du "extends Thread" mais dans le cas present l'heritage multiple m'en empeche....
Je dois creer un pere qui collecte des infos, et qui crée des fils qui executent des tache a partir de ces infos.
QQ d'assez gentil pour me faire un p'tit exemple
Merci