Frühe Computer enthielten kein Betriebssystem. Sie führten nur ein Programm von Anfang bis Ende aus, und dieses Programm hatte Zugriff auf alle Ressourcen des Computers. Mit der Entwicklung von Computern und dem Aufkommen von Betriebssystemen können Computer mehrere Programme gleichzeitig ausführen, und jedes Programm wird in einem separaten Prozess ausgeführt. Warum das tun? Hauptsächlich aus folgenden Gründen:
Da sich Computer vom Single-Tasking zum Multi-Tasking entwickelt haben, können sich Programme auf natürliche Weise von traditionellen seriellen Programmen zu gleichzeitigen Programmen entwickeln.
Der Vorteil serieller Programme besteht darin, dass sie einfach und intuitiv sind. Aber die oben genannten drei Gründe führten auch zur Entstehung von Threads. Der oben genannte Computer kann Programme in separaten Prozessen ausführen, und Threads ermöglichen die Existenz mehrerer Programmsteuerungsflüsse innerhalb desselben Prozesses. Mehrere Threads eines Programms können auch so geplant werden, dass sie von mehreren CPUs gleichzeitig ausgeführt werden. Dies entspricht der gleichzeitigen Ausführung mehrerer Programme (Prozesse) durch den Computer und der gleichzeitigen Ausführung mehrerer Threads durch das Programm. Das heißt, Threads innerhalb des Prozesses ausführen.
Threads werden auch als Lightweight-Prozesse bezeichnet. Heutige Betriebssysteme sind alle mit Threads als Grundeinheit geplant. Da Ressourcen von Threads gemeinsam genutzt werden und kein klarer Synchronisierungsmechanismus vorhanden ist, führt dies zu einer ungeordneten Ausführung zwischen Threads, Datenfehlern oder -ausfällen und Ausnahmen. Hier liegt oft die Schwierigkeit bei der gleichzeitigen Programmierung.
Aus meiner Sicht handelt es sich bei der sogenannten gleichzeitigen Programmierung um die Verwendung von Threads. Threads können viele asynchrone Arbeitsabläufe in serielle Arbeitsabläufe umwandeln, und die gleichzeitige Programmierung besteht darin, eine Synchronisierung in asynchronen Situationen zu erreichen, damit sie den Anforderungen entspricht.
Was sind also die Vorteile und Risiken von Fäden?
Threads können die Programmentwicklungs- und Wartungskosten effektiv senken und die Leistung verbessern. Reduzieren Sie die Komplexität des Codes und simulieren Sie menschliche Arbeitsmethoden besser.
Thread-Unterstützung ist ein zweischneidiges Schwert, und die Entwicklung gleichzeitiger Programme stellt auch höhere Anforderungen an Programmierer.
Es gibt ein gutes Beispiel zum Thema Sicherheit:
value++;
Mit nur dieser einen Codezeile gibt es in einem Single-Thread-Programm überhaupt kein Problem, in Multi-Thread-Programmen können jedoch unerwartete Konsequenzen auftreten.
Es gibt drei Schritte, um diese Codezeile auszuführen: 1. Wert lesen 2. 1 zum Wert addieren 3. Den hinzugefügten Wert wieder dem Wert zuweisen; Wenn in diesem Zeitraum zwei Threads den Wert gleichzeitig lesen, denselben Wert erhalten und gleichzeitig 1 hinzufügen, erhalten verschiedene Threads denselben Wert . Und wir erwarten, dass dieser Mehrwert doppelt entsteht.
Jedes Java-Programm verwendet Threads. Auch wenn Sie Threads erstellen, ohne sie explizit im Programm zu erstellen, muss das von Ihnen verwendete Framework dennoch Thread-sicher sein.
Das obige ist der detaillierte Inhalt vonEine kurze Einführung in JAVA. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!