Heim  >  Artikel  >  Java  >  Ist Multithreading gleichzeitig oder parallel?

Ist Multithreading gleichzeitig oder parallel?

(*-*)浩
(*-*)浩Original
2019-06-19 11:28:409241Durchsuche

Der sogenannte Prozess (Prozess) ist ein Speicherbereich, der bestimmte Ressourcen enthält. Das Betriebssystem nutzt Prozesse, um seine Arbeit in Funktionseinheiten aufzuteilen. Eine oder mehrere in einem Prozess enthaltene Ausführungseinheiten werden Threads genannt. Ein Prozess verfügt außerdem über einen privaten virtuellen Adressraum, auf den nur der darin enthaltene Thread zugreifen kann.

Ist Multithreading gleichzeitig oder parallel?

Ein Thread kann nur zu einem Prozess gehören und nur auf Ressourcen zugreifen, die diesem Prozess gehören. Wenn das Betriebssystem einen Prozess erstellt, wendet der Prozess automatisch einen Thread an, der als Hauptthread oder Primärthread bezeichnet wird. (Empfohlenes Lernen: Java-Video-Tutorial)

Die Prozesse laufen nicht wirklich gleichzeitig, sondern parallel.
Ein Prozess hat mindestens einen Thread. Der Teilungsmaßstab von Threads ist kleiner als der von Prozessen, wodurch Multithread-Programme eine hohe Parallelität aufweisen. Darüber hinaus verfügt der Prozess während der Ausführung über eine unabhängige Speichereinheit, und mehrere Threads teilen sich den Speicher, wodurch die Ausführungseffizienz des Programms erheblich verbessert wird.

Der Unterschied zwischen einem Thread und einem Prozess während der Ausführung besteht darin, dass jeder unabhängige Thread einen Eingang für die Programmausführung, eine sequentielle Ausführungssequenz und einen Ausgang für das Programm hat. Threads können jedoch nicht unabhängig ausgeführt werden und müssen im Anwendungsprogramm vorhanden sein, und das Anwendungsprogramm bietet eine Steuerung für die Ausführung mehrerer Threads.

Aus logischer Sicht bedeutet Multithreading, dass in einer Anwendung mehrere Ausführungsteile gleichzeitig ausgeführt werden können. Das Betriebssystem betrachtet mehrere Threads jedoch nicht als mehrere unabhängige Anwendungen zur Implementierung der Prozessplanung und -verwaltung sowie der Ressourcenzuweisung.

Mehrere Threads oder Prozesse, die „gleichzeitig“ laufen, sind lediglich eine sensorische Manifestation. Tatsächlich werden Prozesse und Threads gleichzeitig ausgeführt. Der Thread-Planungsmechanismus des Betriebssystems unterteilt die Zeit in viele Zeitscheiben (Zeitscheiben) und verteilt sie so gleichmäßig wie möglich auf die laufenden Programme ausgeführt, und andere Dann warten. Die CPU wechselt zwischen diesen Prozessen bzw. Threads hin und her. Auf der Mikroebene sind alle Prozesse und Threads Stop-and-Go, aber auf der Makroebene laufen sie alle. Dieses Phänomen wird als Parallelität bezeichnet, es tritt jedoch nicht im absoluten Sinne gleichzeitig auf.

Weitere technische Artikel zum Thema Java finden Sie in der Spalte Java-Entwicklungs-Tutorials, um mehr darüber zu erfahren!

Das obige ist der detaillierte Inhalt vonIst Multithreading gleichzeitig oder parallel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn