Der Teil, den Threads im selben Prozess nicht gemeinsam nutzen, ist der Stapel des Threads.
Die von Threads gemeinsam genutzte Umgebung umfasst: Prozesscodesegmente, öffentliche Daten des Prozesses (mithilfe dieser gemeinsam genutzten Daten können Threads problemlos miteinander kommunizieren), vom Prozess geöffnete Dateideskriptoren und Signale Prozessor, das aktuelle Verzeichnis des Prozesses sowie die Prozessbenutzer-ID und Prozessgruppen-ID.
Während Prozesse viele Gemeinsamkeiten aufweisen, haben sie auch ihre eigene Persönlichkeit. Mit diesen Persönlichkeiten können Threads Parallelität erreichen. Zu diesen Persönlichkeiten gehören:
1. Thread-ID
Jeder Thread hat seine eigene Thread-ID, die in diesem Prozess eindeutig ist. Prozesse nutzen dies, um Threads zu identifizieren.
2. Gruppenwert registrieren
Da Threads gleichzeitig ausgeführt werden, hat jeder Thread seine eigenen unterschiedlichen Laufhinweise. , muss der Status des Registersatzes des ursprünglichen Threads gespeichert werden, damit der Thread wiederhergestellt werden kann, wenn er in Zukunft erneut gewechselt wird.
3. Thread-Stack
Der Stack ist notwendig, um sicherzustellen, dass der Thread unabhängig läuft. Thread-Funktionen können Funktionen aufrufen und die aufgerufenen Funktionen können Schicht für Schicht verschachtelt werden. Daher muss der Thread über einen eigenen Funktionsstapel verfügen, damit der Funktionsaufruf normal ausgeführt werden kann, ohne von anderen Threads beeinflusst zu werden.
4. Fehlerrückgabecode
Da viele Threads gleichzeitig im selben Prozess ausgeführt werden, ist es möglich, dass ein bestimmter Thread nach der Erstellung eines Systems den Fehlernummerwert festlegt Anruf, und in diesem Prozess Der Thread hat diesen Fehler noch nicht verarbeitet und zu diesem Zeitpunkt wird vom Scheduler ein anderer Thread in Betrieb genommen, sodass der Fehlerwert möglicherweise geändert wird. Daher sollten verschiedene Threads ihre eigenen Fehlerrückgabecodevariablen haben.
5. Signalmaskierungscode des Threads
Da jeder Thread an unterschiedlichen Signalen interessiert ist, sollte der Signalmaskierungscode des Threads vom Thread selbst verwaltet werden. Aber alle Threads nutzen denselben Signalhandler.
6. Thread-Priorität
Da Threads wie Prozesse geplant werden müssen, müssen Parameter für die Planung verfügbar sein. Dieser Parameter ist die Priorität des Threads.
Das obige ist der detaillierte Inhalt vonWelchen Teil teilen sich Threads im selben Prozess nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!