Maison >Java >javaDidacticiel >Comment écrire une classe qui implémente l'interface Runnable en Java ?

Comment écrire une classe qui implémente l'interface Runnable en Java ?

WBOY
WBOYavant
2023-05-09 19:52:151653parcourir

L'interface Runnable n'a qu'une seule méthode, run(). Nous déclarons que notre classe implémente l'interface Runnable et fournit cette méthode, et y écrit notre code de thread pour terminer cette partie de la tâche.

Mais l'interface Runnable n'a aucun support pour les threads. Nous devons également créer une instance de la classe Thread, ce qui est réalisé via le constructeur public Thread(Runnable target); Voici un exemple :

public class MyThread implements Runnable  {   int count= 1, number;   public MyThread(int num)  {   numnumber = num;   System.out.println("创建线程 " + number);   }   public void run()  {   while(true)  {   System.out.println  ("线程 " + number + ":计数 " + count);   if(++count== 6) return;   }   }   public static void main(String args[])  {   for(int i = 0; i 〈 5;  i++) new Thread(new MyThread(i+1)).start();   }   }

À proprement parler, il est également possible de créer une instance d'une sous-classe Thread, mais il faut noter que la sous-classe ne doit pas remplacer la méthode run de la classe Thread, sinon le thread exécutera le méthode run de la sous-classe au lieu de la méthode run de la classe que nous utilisons pour implémenter l'interface Runnable, vous pourriez aussi bien l'essayer.

L'utilisation de l'interface Java Runnable pour implémenter le multithreading nous permet de contenir tout le code dans une seule classe, ce qui est propice à l'encapsulation. Son inconvénient est que nous ne pouvons utiliser qu'un seul ensemble de code si nous voulons créer plusieurs threads et créer. chaque thread s'exécute Si le code est différent, vous devez toujours créer une classe supplémentaire. Si tel est le cas, dans la plupart des cas, cela peut ne pas être aussi compact que l'utilisation directe de plusieurs classes pour hériter de Thread.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer