112 votes

Dans une explication simple à comprendre, qu'est-ce que Runnable en Java ?

Qu'est-ce que "runnable" en Java, en termes simples ? Je suis un étudiant en programmation AP au lycée, dont le devoir est de faire des recherches, ou de demander aux autres ce qu'est "runnable" (nous commençons juste à aborder la POO, et n'avons pas encore touché aux threads).

210voto

opatut Points 2176

Un Runnable est essentiellement un type de classe (Runnable est une interface) qui peut être placé dans un thread, décrivant ce que le thread est censé faire.

El Interface exécutable requiert de la classe qu'elle implémente la méthode run() comme ça :

public class MyRunnableTask implements Runnable {
     public void run() {
         // do stuff here
     }
}

Et ensuite l'utiliser comme ça :

Thread t = new Thread(new MyRunnableTask());
t.start();

Si vous n'avez pas eu le Runnable la classe Thread, qui est responsable de l'exécution de votre travail dans l'autre thread, n'aurait pas la promesse de trouver une interface run() dans votre classe, ce qui pourrait entraîner des erreurs. C'est pourquoi vous devez implémenter l'interface.

Avancé : Type anonyme

Notez que vous n'avez pas besoin de définir une classe comme d'habitude, vous pouvez faire tout cela en ligne :

Thread t = new Thread(new Runnable() {
    public void run() {
        // stuff here
    }
});
t.start();

Cette méthode est similaire à la précédente, sauf que vous ne créez pas une autre classe nommée.

11voto

Alex Coleman Points 3927

Runnable est une interface définie comme telle :

interface Runnable {
    public void run();
}

Pour créer une classe qui l'utilise, il suffit de définir la classe en tant que (public) class MyRunnable implements Runnable {

Il peut être utilisé sans même créer un nouveau fil. Il s'agit essentiellement de l'interface de base avec une seule méthode, run, qui peut être appelée.

Si vous créez un nouveau Thread avec runnable comme paramètre, il appellera la méthode run dans un nouveau Thread.

Il convient également de noter que les Threads mettent en oeuvre Runnable et qui est appelé lorsque le nouveau fil est créé (dans le nouveau fil). L'implémentation par défaut appelle simplement n'importe quel Runnable que vous avez fourni dans le constructeur, ce qui explique pourquoi vous pouvez juste faire new Thread(someRunnable) sans remplacer la fonction run méthode.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X