Qu'est-ce que "exécutable" en Java, en termes simples? Je suis un étudiant en programmation AP au lycée, dont la mission est de faire de la recherche, ou de chercher auprès des autres ce qu'est «exécutable» (nous entrons juste dans la POO, et n'avons pas encore touché aux fils).
92
Réponses:
Un Runnable est fondamentalement un type de classe (Runnable est une Interface) qui peut être mis dans un thread, décrivant ce que le thread est censé faire.
L' interface exécutable exige de la classe qu'elle implémente la méthode
run()
comme suit:Et puis utilisez-le comme ceci:
Si vous n'aviez pas l'
Runnable
interface, la classe Thread, qui est chargée d'exécuter vos trucs dans l'autre thread, n'aurait pas la promesse de trouver unerun()
méthode dans votre classe, donc vous pourriez 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:
Ceci est similaire à ce qui précède, mais vous ne créez pas une autre classe nommée.
la source
run
méthode se termine, puis le thread est fermé. Si vous voulez qu'un thread s'exécute encore et encore, placez une boucle à l'intérieur de larun
méthode.new Thread(() -> System.out.println("hello from other thread")).start();
Runnable
est une interface définie comme suit:Pour créer une classe qui l'utilise, définissez simplement la classe comme
(public) class MyRunnable implements Runnable {
Il peut être utilisé sans même faire un nouveau fil. C'est essentiellement votre 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 Threads implémente
Runnable
, et cela est appelé lorsque le nouveau Thread est créé (dans le nouveau thread). L'implémentation par défaut appelle simplement le Runnable que vous avez remis au constructeur, c'est pourquoi vous pouvez simplement vousnew Thread(someRunnable)
passer de larun
méthode de Thread .la source
Thread
étendez le pool de threads est difficile et si vous n'implémentez pas le pool de threads, vous portez le coût important de la création de nouveaux threads tout le temps. En revanche, la simple mise en œuvreRunnable
signifie que vous pouvez facilement utiliser des éléments tels queThreadPoolExecutorService
ou un pool de threads tiers.