Im vorherigen Artikel habe ich die Implementierungsmethode von Java Multi-Threading vorgestellt.
Lassen Sie mich Ihnen zunächst die Vor- und Nachteile des Multi-Threading erzählen
Vorteile des Multithreading:
1) Bessere Ressourcennutzung
2) Die Programmierung ist in einigen Fällen einfacher
3) Das Programm reagiert schneller
Die Kosten für Multithreading:
1) komplexeres Design
Während einige Multithread-Anwendungen einfacher sind als Einzelantriebsanwendungen, sind andere im Allgemeinen komplexer. Dieser Teil des Codes benötigt besondere Aufmerksamkeit beim Zugriff auf gemeinsame Daten über mehrere Threads. Die Wechselwirkung zwischen Threads ist oft sehr komplex. Fehler, die durch falsche Threadsynchronisation erzeugt werden, sind sehr schwer zu erkennen und zu reproduzieren, um sie zu beheben.
2) Overhead des Kontextschalters
Wenn die CPU von der Ausführung eines Threads zum Ausführen eines anderen Threads wechselt, muss sie zunächst die lokalen Daten des aktuellen Threads, den Programmzeiger usw. speichern, die lokalen Daten eines anderen Threads, Programmzeigers usw. laden und schließlich starten Ausführung. Dieser Schalter wird als "Kontextschalter" bezeichnet. Die CPU führt einen Thread in einem Kontext aus und wechselt dann in einen anderen Kontext, um einen anderen Thread auszuführen. Kontextumschaltung ist nicht billig. Wenn nicht erforderlich, sollte der Kontextumschalter reduziert werden.
Es gibt zwei Schlüsseltechnologien zum Definieren und Starten von Threads:
Erstens: Die Thread -Klasse muss die Schnittstelle java.lang.runnable implementieren oder die Java.lang.Thread -Klasse erben, und beide müssen die Run -Methode implementieren, wobei die Run -Methode keine Eingabe, keine Ausgabe und keine Ausnahmen enthält.
Zweitens: Rufen Sie die Startmethode der Thread -Klasse auf, um den Thread zu starten.
Pakettest; import Java.util.Vector; Import Java.util.Date;/*** Thread -Testinstanz* @author immer noch fließend**/public class ThreadNew {/**** @author still der Wasserfluss************* / Klasse Threada erweitert Thread {private Datum Runtime; ); Date (); * */public void startb () {runnable faden = neuer Threadb (); [] args) {ThreadNew test = new ThreadNew ();