Cet article présente la méthode d'implémentation du multi-threading basée sur l'apprentissage Java
1 Hériter de la classe Thread
Bien que la méthode d'héritage de la classe Thread soit répertoriée comme une implémentation multi-thread méthode par moi, Thread est essentiellement une instance qui implémente l'interface Runnable, qui représente une instance d'un thread, et la seule façon de démarrer un thread est via la méthode d'instance start() de la classe Thread. La méthode start() est une méthode native qui démarrera un nouveau thread et exécutera la méthode run(). Il est très simple d'implémenter le multithread de cette manière. En étendant directement Thread via votre propre classe et en remplaçant la méthode run(), vous pouvez démarrer un nouveau thread et exécuter votre propre méthode run() définie.
public class MyThread extends Thread { public void run() { System.out.println("MyThread.run()"); } } //启动线程 MyThread myThread1 = new MyThread(); MyThread myThread2 = new MyThread(); myThread1.start(); myThread2.start();
2 Implémenter l'interface Runnable
Si une classe hérite d'une autre classe, elle ne peut pas hériter de la classe Thread (l'héritage multiple n'est pas pris en charge en Java), donc l'interface Runnable doit être implémentée . Réécrivez la méthode run() dans la classe et implémentez le multithreading dans la méthode principale : instanciez un objet de classe d'implémentation, initialisez l'objet de classe Thread et transmettez la classe d'implémentation dans l'objet Thread. En fait, lorsqu'un paramètre cible Runnable est transmis à Thread, la méthode run() de Thread appellera target.run().
//实现Runnable接口 public class MyThread extends OtherClass implements Runnable { public void run() { System.out.println("MyThread.run()"); } } //复写run()方法 public void run() { if (target != null) { target.run(); } } //实例化对象 MyThread myThread = new MyThread(); Thread thread = new Thread(myThread); thread.start();
3 Utilisez ExecutorService, Callable et Future pour implémenter le multi-threading avec les résultats renvoyés
Cette partie du contenu n'a pas encore été apprise et ne sera pas enregistrée. Elle le sera. ajouté plus tard
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!