Inhaltsverzeichnis
Der Unterschied zwischen Prozessen und Threads: " >Der Unterschied zwischen Prozessen und Threads:
Heim Web-Frontend Front-End-Fragen und Antworten Was ist der Unterschied zwischen Prozessen und Threads in JavaScript?

Was ist der Unterschied zwischen Prozessen und Threads in JavaScript?

Jun 09, 2021 pm 05:13 PM
javascript 线程 进程

Unterschied: Prozesse haben unabhängige Adressräume. Nach einem Prozessabsturz hat dies keine Auswirkungen auf andere Prozesse im geschützten Modus. Threads sind lediglich unterschiedliche Ausführungspfade in einem Prozess (ein Prozess besteht aus einem oder mehreren Threads). Speicherplatz (gemeinsamer Speicher) zwischen Threads. Der Tod eines Threads entspricht dem Tod des gesamten Prozesses.

Was ist der Unterschied zwischen Prozessen und Threads in JavaScript?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.

Threads werden unterteilt in: Single-Thread und Multi-Thread

Single-Thread: Ein laufendes Programm (das heißt, es läuft) hat mindestens einen Thread. Ein Programm mit nur einem Der Hauptthread wird als Single-Thread-Programm bezeichnet. Der Hauptthread ist für die Ausführung aller Codes verantwortlich (Anzeige und Aktualisierung der Benutzeroberfläche, Netzwerkanforderungen, lokaler Speicher usw.). Diese Codes können nur sequentiell und nicht gleichzeitig ausgeführt werden.

 Multithreading: Ein Programm mit mehreren Threads wird als Multithread-Programm bezeichnet. Die Unterthreads und der Hauptthread sind unabhängige laufende Einheiten andere und können gleichzeitig ausgeführt werden.

Der Unterschied zwischen Single-Thread und Multi-Thread:

Single-Thread: Es gibt nur einen Thread, der Code wird sequentiell ausgeführt und es kann leicht zu Codeblockierungen (seitenangehaltene Animationen) kommen.

Multi-Thread; Thread: Es gibt mehrere Threads, und die Threads werden unabhängig voneinander ausgeführt, wodurch Codeblockierungen effektiv vermieden und die Laufleistung des Codes verbessert werden können.

ProzessDefinition: Ein Prozess ist ein fortlaufendes Programm. Es ist ein dynamisches Konzept. Es ist die Grundeinheit für die Ressourcenzuweisung und -planung im System.

Der Unterschied zwischen Prozessen und Threads:

Ein Programm enthält mindestens einen Prozess und ein Prozess enthält mindestens einen Thread.

Mehrere Prozesse verfügen über einen unabhängigen Speicher, und Multi-Threads teilen sich den Speicher, sodass mehrere Threading verbessert die Betriebseffizienz;

Die Bedeutung von Multithreading besteht darin, dass mehrere Programme gleichzeitig ausgeführt werden können, das System Multithreading jedoch nicht als mehrere unabhängige Anwendungen betrachtet.

Vertieftes Verständnis:

Beispiele:

1. Das Herzstück des Computers ist die CPU, die alle Rechenaufgaben übernimmt. Es ist wie eine Fabrik, die ständig in Betrieb ist.

2. Gehen Sie davon aus, dass der Strom der Fabrik begrenzt ist und jeweils nur eine Werkstatt versorgt werden kann. Mit anderen Worten: Wenn eine Werkstatt ihre Arbeit aufnimmt, müssen andere Werkstätten ihre Arbeit einstellen. Der Sinn dahinter ist, dass eine einzelne CPU jeweils nur eine Aufgabe ausführen kann.

3. Ein Prozess ist wie eine Fabrikhalle, er stellt eine einzelne Aufgabe dar, die die CPU bewältigen kann. Zu jedem Zeitpunkt führt die CPU immer einen Prozess aus, und andere Prozesse befinden sich in einem nicht ausgeführten Zustand.

4. In einer Werkstatt können viele Arbeiter sein. Sie arbeiten zusammen, um eine Mission zu erfüllen.

5. Fäden sind wie Arbeiter in einer Werkstatt. Ein Prozess kann mehrere Threads umfassen.

6. Der Werkstattraum wird von den Arbeitern gemeinsam genutzt. Viele Räume können beispielsweise von jedem Arbeiter betreten und verlassen werden. Dies symbolisiert, dass der Speicherplatz eines Prozesses gemeinsam genutzt wird und jeder Thread diese gemeinsam genutzten Speicher nutzen kann.

7. Allerdings ist die Größe jedes Zimmers unterschiedlich und einige Zimmer bieten maximal Platz für eine Person, wie zum Beispiel die Toilette. Wenn Menschen drinnen sind, kann niemand sonst hineingehen. Das bedeutet, dass, wenn ein Thread gemeinsam genutzten Speicher nutzt, andere Threads auf dessen Ende warten müssen, bevor sie diesen Speicher nutzen können.

8. Eine einfache Möglichkeit, den Zutritt anderer zu verhindern, besteht darin, die Tür mit einem Schloss zu versehen. Diejenigen, die zuerst ankamen, schlossen die Tür ab, und diejenigen, die später kamen, sahen das Schloss und stellten sich an der Tür auf und warteten darauf, dass sich das Schloss öffnete, bevor sie eintraten. Dies wird als „gegenseitige Ausschlusssperre“ (gegenseitiger Ausschluss, abgekürzt als Mutex) bezeichnet, die verhindert, dass mehrere Threads gleichzeitig einen bestimmten Speicherbereich lesen und schreiben.

9. Es gibt auch einige Räume, in denen n Personen gleichzeitig Platz finden, wie zum Beispiel die Küche. Mit anderen Worten: Wenn die Anzahl der Personen größer als n ist, können die zusätzlichen Personen nur draußen warten. Dies ähnelt einigen Speicherbereichen, die nur von einer festen Anzahl von Threads verwendet werden können.

10. Die Lösung besteht derzeit darin, Schlüssel an die Tür zu hängen. Die Person, die hineingeht, nimmt einen Schlüssel und hängt ihn wieder auf, wenn sie herauskommt. Diejenigen, die später ankamen, stellten fest, dass die Schlüssel leer waren und wussten daher, dass sie an der Tür anstehen mussten. Dieser Ansatz wird "Semaphore" (Semaphore) genannt und dient dazu, sicherzustellen, dass mehrere Threads nicht miteinander in Konflikt geraten. Es ist nicht schwer zu erkennen, dass Mutex ein Sonderfall von Semaphor ist (wenn n=1). Mit anderen Worten: Letzteres kann Ersteres vollständig ersetzen. Da Mutex jedoch relativ einfach und effizient ist, wird dieses Design immer noch verwendet, wenn die Ressourcenexklusivität gewährleistet sein muss.

11. Das Design des Betriebssystems lässt sich auf drei Punkte reduzieren:

(1) In Form von Multiprozessen, die die gleichzeitige Ausführung mehrerer Aufgaben ermöglichen;

(2) In Form von Multithreading, das die Aufteilung einer einzelnen Aufgabe in verschiedene Teile ermöglicht. Ausführen;

(3) Bereitstellung eines Koordinationsmechanismus, um einerseits Konflikte zwischen Prozessen und Threads zu verhindern und andererseits die gemeinsame Nutzung von Ressourcen zwischen Prozessen und Threads zu ermöglichen .

Der Hauptunterschied zwischen Prozessen und Threads besteht darin, dass es sich um unterschiedliche Methoden zur Verwaltung von Betriebssystemressourcen handelt. Der Prozess verfügt über einen unabhängigen Adressraum. Nach einem Prozessabsturz hat dies keine Auswirkungen auf andere Prozesse im geschützten Modus, und Threads sind lediglich unterschiedliche Ausführungspfade in einem Prozess.

Threads haben ihre eigenen Stapel und lokalen Variablen, aber es gibt keinen separaten Adressraum zwischen Threads. Wenn ein Thread stirbt, bedeutet dies, dass der gesamte Prozess stirbt. Daher sind Multiprozessprogramme robuster als Multithread-Programme Das Umschalten von Prozessen verbraucht mehr Ressourcen und ist weniger effizient.

Aber für einige gleichzeitige Vorgänge, die die gleichzeitige Ausführung und gemeinsame Nutzung bestimmter Variablen erfordern, können nur Threads und keine Prozesse verwendet werden.

Weitere Programmierkenntnisse finden Sie unter: Programmiervideo! !

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Prozessen und Threads in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Erklären Sie, was der Prozess explorer.exe ist Erklären Sie, was der Prozess explorer.exe ist Feb 18, 2024 pm 12:11 PM

Welcher Prozess ist explorer.exe? Wenn wir das Windows-Betriebssystem verwenden, hören wir oft den Begriff „explorer.exe“. Sind Sie neugierig, was dieser Prozess ist? In diesem Artikel erklären wir ausführlich, was der Prozess explorer.exe ist und welche Funktionen und Auswirkungen er hat. Zunächst einmal ist explorer.exe ein Schlüsselprozess des Windows-Betriebssystems. Er ist für die Verwaltung und Steuerung des Windows Explorers (Windows) verantwortlich

Was für ein Prozess ist ccsvchst.exe? Was für ein Prozess ist ccsvchst.exe? Feb 19, 2024 pm 11:33 PM

ccsvchst.exe ist eine allgemeine Prozessdatei, die Teil der Symantec Endpoint Protection (SEP)-Software ist, und SEP ist eine Endpoint Protection-Lösung, die vom bekannten Netzwerksicherheitsunternehmen Symantec entwickelt wurde. Als Teil der Software ist ccsvchst.exe für die Verwaltung und Überwachung SEP-bezogener Prozesse verantwortlich. Werfen wir zunächst einen Blick auf SymantecEndpointProtection(

So beenden Sie Zombie-Prozesse unter Linux ordnungsgemäß So beenden Sie Zombie-Prozesse unter Linux ordnungsgemäß Feb 19, 2024 am 10:40 AM

In Linux-Systemen sind Zombie-Prozesse spezielle Prozesse, die beendet wurden, aber noch im System verbleiben. Obwohl Zombie-Prozesse nicht viele Ressourcen verbrauchen, können sie bei zu vielen Ressourcen zur Erschöpfung der Systemressourcen führen. In diesem Artikel erfahren Sie, wie Sie Zombie-Prozesse korrekt entfernen, um den normalen Betrieb des Systems sicherzustellen. 1Linux-Zombie-Prozess Nachdem der untergeordnete Prozess seine Aufgabe abgeschlossen hat und der übergeordnete Prozess den Status nicht rechtzeitig überprüft, wird der untergeordnete Prozess zu einem Zombie-Prozess. Der untergeordnete Prozess wartet auf die Bestätigung des übergeordneten Prozesses und das System wird ihn erst wiederverwenden, wenn er abgeschlossen ist. Andernfalls bleibt der Zombie-Prozess weiterhin im System hängen. Um zu überprüfen, ob Zombie-Prozesse im System vorhanden sind, können Sie den Befehl top ausführen, um alle laufenden Prozesse und mögliche Zombie-Prozesse anzuzeigen. Das Ergebnis des Befehls „top“ ist in der Abbildung oben unter Linux zu sehen.

Detaillierte Erläuterung der Methode zur Anpassung der Linux-Prozesspriorität Detaillierte Erläuterung der Methode zur Anpassung der Linux-Prozesspriorität Mar 15, 2024 am 08:39 AM

Detaillierte Erläuterung der Linux-Prozessprioritätsanpassungsmethode Im Linux-System bestimmt die Priorität eines Prozesses seine Ausführungsreihenfolge und Ressourcenzuteilung im System. Eine angemessene Anpassung der Priorität des Prozesses kann die Leistung und Effizienz des Systems verbessern. In diesem Artikel wird detailliert beschrieben, wie Sie die Priorität des Prozesses unter Linux anpassen, und es werden spezifische Codebeispiele bereitgestellt. 1. Überblick über die Prozesspriorität Im Linux-System ist jedem Prozess eine Priorität zugeordnet. Der Prioritätsbereich liegt im Allgemeinen zwischen -20 und 19, wobei -20 die höchste Priorität und 19 die höchste Priorität darstellt

Warum schlafen Prozesse unter Linux? Warum schlafen Prozesse unter Linux? Mar 20, 2024 pm 02:09 PM

Warum schlafen Prozesse unter Linux? Im Linux-Betriebssystem kann ein Prozess aus verschiedenen Gründen und Bedingungen in den Ruhezustand geraten. Wenn sich ein Prozess in einem Ruhezustand befindet, bedeutet dies, dass der Prozess vorübergehend angehalten ist und die Ausführung nicht fortsetzen kann, bis bestimmte Bedingungen erfüllt sind, bevor er zur Fortsetzung der Ausführung aktiviert werden kann. Als Nächstes werden wir einige häufige Situationen, in denen ein Prozess unter Linux in den Ruhezustand wechselt, im Detail vorstellen und sie anhand spezifischer Codebeispiele veranschaulichen. Warten auf den Abschluss der E/A: Wenn ein Prozess einen E/A-Vorgang initiiert (z. B. Lesen).

Gleichzeitige C++-Programmierung: Wie vermeidet man Thread-Aushungerung und Prioritätsumkehr? Gleichzeitige C++-Programmierung: Wie vermeidet man Thread-Aushungerung und Prioritätsumkehr? May 06, 2024 pm 05:27 PM

Um Thread-Aushunger zu vermeiden, können Sie faire Sperren verwenden, um eine faire Zuweisung von Ressourcen sicherzustellen, oder Thread-Prioritäten festlegen. Um die Prioritätsumkehr zu lösen, können Sie die Prioritätsvererbung verwenden, um die Priorität des Threads, der die Ressource enthält, vorübergehend zu erhöhen, oder die Sperrenerhöhung verwenden, um die Priorität des Threads zu erhöhen, der die Ressource benötigt.

Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Jan 05, 2024 pm 06:08 PM

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

So erkennen Sie, ob im Linux-System kein PHP-Prozess vorhanden ist So erkennen Sie, ob im Linux-System kein PHP-Prozess vorhanden ist Mar 16, 2024 am 11:42 AM

„Erkennungsmethode für keinen PHP-Prozess im Linux-System, spezifische Codebeispiele sind erforderlich.“ Wenn wir ein Linux-System für die Webentwicklung verwenden, verlassen wir uns häufig auf den PHP-Prozess, um dynamische Seiten und Logik zu verarbeiten, und manchmal müssen wir möglicherweise überwachen, ob ein PHP vorhanden ist Prozess auf dem Server. In diesem Artikel wird eine Methode zum Erkennen, ob in einem Linux-System ein PHP-Prozess vorhanden ist, vorgestellt und spezifische Codebeispiele gegeben. Warum ist es notwendig, den PHP-Prozess zu erkennen? In der Webentwicklung spielt der PHP-Prozess eine entscheidende Rolle. Er ist für das Parsen und Ausführen von PHP-Prozessen verantwortlich.

See all articles