Cet exemple partage trois façons d'implémenter le multi-threading en Java pour votre référence. Le contenu spécifique est le suivant
import java.util.concurrent.callable; import java.util.concurrent.futureTask; public class main {public static void main (string [] args) {// méthode 1: hériter thread int i = 0; // for (; i <100; i ++) {// system.out.println (thread.currentthread (). i); // if (i == 5) {// threadExtendSThread ThreadExtendSThread = new ThreaStendStHead (); // ThreaStendSThread.Start (); //} //} // Méthode 2: implément Runnable // for (i = 0; i <100; i ++) {// system.out.println (Thread.Currenthread (). i); // if (i == 5) {// runnable runnable = new ThreadImplementsRunnable (); // new Thread (runnable) .Start (); //} //} // Method 3: Implément l'interface callable callable <inger> callable = new ThreadImpLelementScallable (); FutureTask <Integer> FutureTask = new FutureTask <> (callable); pour (i = 0; i <100; i ++) {System.out.println (thread.currentThread (). getName () + "" + i); if (i == 5) {nouveau thread (futureTask) .start (); Nouveau thread (FutureTask) .start (); }} essayez {System.out.println ("FutureTask RUTUR:" + FutureTask.get ()); } catch (exception e) {e.printStackTrace (); }}} Méthode 1, hériter du fil
classe publique threadExtendSThread étend Thread {private int i; @Override public void run () {for (; i <100; i ++) {System.out.println (getName () + "" + i); }}}La méthode d'exécution est le corps d'exécution du thread, et l'objet ThreadExttendSthread est l'objet thread.
Méthode 2: Implémentez l'interface Runnable
classe publique ThreadImplementsRunnable implémente Runnable {private int i; @Override public void run () {for (; i <100; i ++) {System.out.println (thread.currentThread (). GetName () + "" + i); }}}La méthode d'exécution est le corps d'exécution du thread. Lorsque vous l'utilisez, un objet thread est nouveau et l'objet Runnable est passé à l'objet thread comme cible. Et le même objet Runnable peut être utilisé comme cible pour plusieurs threads, et ces threads partagent des variables d'instance de l'objet Runnable.
Méthode 3: Implémentez l'interface appelée
import java.util.concurrent.callable; public class threadImplementsCallable implémente callable <Integer> {private int i; @Override public Integer Call () lève une exception {pour (; i <100; i ++) {System.out.println (thread.currentThread (). GetName () + "" + i); } return i; }}L'interface appelée est similaire à l'interface Runnable, mais elle est plus forte que l'autre partie. Le corps d'exécution du thread est une méthode d'appel, qui a une valeur de retour et peut lancer des exceptions. Lorsqu'il est utilisé, enveloppez l'objet callable en tant qu'objet FutureTask, spécifiez le type de valeur de retour via les génériques. Vous pouvez appeler la méthode GET de FutureTask pour récupérer le résultat d'exécution.
Ce qui précède concerne cet article, j'espère qu'il sera utile à l'apprentissage de tout le monde.