Ein Java-Programm , das nur tun können, eine Sache zu einer Zeit hat erhebliche Einschränkungen in der Komplexität der Aufgaben, die der Programmierer fragen sie ausführen können. Damit Programme , mehrere Operationen gleichzeitig durchführen, können Java-Programmierer neue Prozesse durch Instanziieren Threads zu erstellen . Trotz ihrer Nützlichkeit und Notwendigkeit in komplexen Anwendungen , sind Themen nicht ohne Einschränkungen. Themen
Java-Programmierer erstellen Fäden aus einer Klasse, die die " Runnable " -Schnittstelle implementiert. Die Fäden fungieren als Programme im Rahmen von Programmen , denn sie müssen die " run () "-Methode , die wie die verhält sich "public static void main () " in das Hauptfenster des Programms Klasse gehören . Der Programmierer startet einen Thread , indem eine neue Instanz des Objekts , und rufen dann die "run "-Methode. Sobald Threads starten , können sie Variablen zugreifen und Methoden aufrufen, von anderen Objekten .
Leistungseinschränkungen
Jeder Thread , dass ein Java -Programm erstellt einen Zusatz ergänzt Belastung des Computers Prozessor . Wenn ein Java-Programm laicht mehrere rechenintensive Threads , dann ist die Maschine, auf der das Programm arbeitet kann deutlich verlangsamen . Dies reduziert die Leistung des Programms . Neben Performance-Tuning , hat jeder Prozessor eine maximale Anzahl von Programm-Threads für die es Bearbeitungszeit einplanen können . Diese Zahl variiert von System zu System , und ist in seiner Dokumentation.
Variable Fehler
Wenn ein Programm besteht aus einem einzigen Faden , der " public static void main () "-Methode , ist die Integrität der Daten Programm Variablen kein Problem. Wenn ein Programm mehrere Threads auf und Modifizieren der gleichen Variablen hat , kann eine Variable von einem anderen Thread geändert werden. Die Änderung tritt zwischen der Zeit, dass der andere Thread den Wert der Variablen und die Zeit ändert diese Variable zugreift. Als Themen werden die Funktionen auf Variablen, die abhängig von der Variable Anfangswert sind , kann dies zu Datenverlust führen .
Locks
Um Datenverlust , Java Standard- Bibliothek zu verhindern enthält Objekte namens " Schleusen. " Wenn ein Thread Zugriff auf eine Variable mit der Absicht, es zu ändern , kann das Gewinde rufen eine Sperre Methode, die anderen Threads den Zugriff auf die Variable zu verhindern, bis der aktuelle Thread mit ihr geschehen ist . Nachdem der Thread die Sperre aufgehoben hat , kann die nächste Thread sperren Sie die Variable. Während dies verhindert Datenverlust , verlangsamt es die Anwendungsleistung .