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

Qu’est-ce qui est “runnable” en Java, en termes simples? Je suis un étudiant en programmation AP au lycée, qui a pour mission de faire de la recherche ou de chercher auprès des autres ce que «runnable» est (nous entrons dans la POO, et n’avons pas encore touché aux discussions).

    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.

    L’ interface runnable exige de la classe qu’elle implémente la méthode run() comme ceci:

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

    Et puis utilisez-le comme ceci:

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

    Si vous n’aviez pas l’interface Runnable , la classe Thread, qui est chargée d’exécuter vos fichiers dans l’autre thread, n’aurait pas la promesse de trouver une méthode run() dans votre classe, vous pourriez donc obtenir 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(); 

    Ceci est similaire à ce qui précède, mais vous ne créez pas une autre classe nommée.

    Runnable est une interface définie comme suit:

     interface Runnable { public void run(); } 

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

    Il peut être utilisé sans même créer un nouveau fil. C’est fondamentalement votre interface de base avec une seule méthode, exécutable, 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 Threads implémente Runnable , et qui est appelé lorsque le nouveau thread est créé (dans le nouveau thread). L’implémentation par défaut appelle simplement tout ce que Runnable a fourni au constructeur, c’est pourquoi vous pouvez simplement faire un new Thread(someRunnable) sans surcharger la méthode d’ run de Thread.