Dieses Beispiel bietet drei Möglichkeiten, Multi-Threading in Java als Referenz zu implementieren. Der spezifische Inhalt ist wie folgt
Import Java.util.Concurrent.Callable; Import Java.util.Concurrent i); // if (i == 5) {// threadextendsThreadendendsThread = new threadextendsThread (); // threadextendsThread.start (); //} //} // Methode 2: Runnable // für (i = 0; i <100; i ++) {// system.out.println (thread.crintln (). i); // if (i == 5) {// runnable runnable = new ThreadImplementsRunnable (); // neuer Thread (runnable) .Start (); //} //} // Methode 3: Implementieren Sie die Callable Interface Callable <Gectable> callable = new ThreadimplementsCallable (); Futuretask <Gearner> futuretask = new futuretask <> (Callable); für (i = 0; i <100; i ++) {System.out.println (thread.currentThread (). getName () + "" + i); if (i == 5) {neuer Thread (futuretask) .Start (); neuer Thread (futuretask) .Start (); }} try {system.out.println ("futuretask ruturn:" + futuretask.get ()); } catch (Ausnahme e) {e.printstacktrace (); }}} Methode 1, Erbe vom Thread
öffentliche Klasse ThreadendendsThread erweitert Thread {private int i; @Override public void run () {for (; i <100; i ++) {System.out.println (getName () + "" + i); }}}Die Run -Methode ist der Thread -Ausführungskörper und das ThreadextendsThread -Objekt ist das Thread -Objekt.
Methode 2: Implementieren Sie die Runnable -Schnittstelle
öffentliche Klasse ThreadImplementsRunnable implements Runnable {private int i; @Override public void run () {for (; i <100; i ++) {System.out.println (Thread.currentThread (). GetName () + " + i); }}}Die Run -Methode ist die Thread -Ausführungskörper. Bei der Verwendung ist ein Thread -Objekt neu und das Runnable -Objekt wird als Ziel an das Thread -Objekt übergeben. Das gleiche Runnable -Objekt kann als Ziel für mehrere Threads verwendet werden, und diese Threads teilen Instanzvariablen des Runnable -Objekts.
Methode 3: Implementieren Sie die Callable -Schnittstelle
importieren java.util.concurrent @Override public Integer call () löst eine Ausnahme aus {für (; i <100; i ++) {System.out.println (Thread.currentThread (). GetName () + "" + i); } return i; }}Die Callable -Schnittstelle ähnelt der Runnable -Schnittstelle, ist jedoch stärker als die andere Partei. Die Thread -Ausführungskörper ist eine Anrufmethode, die einen Rückgabewert hat und Ausnahmen ausführen kann. Wickeln Sie bei Verwendung das Callable -Objekt als Futuretask -Objekt ein und geben Sie den Rückgabewerttyp über Generika an. Sie können die GET -Methode von Futuretask aufrufen, um das Ausführungsergebnis abzurufen.
Das Obige dreht sich alles um diesen Artikel, ich hoffe, es wird für das Lernen aller hilfreich sein.