1. Vorwort
Vor kurzem habe ich Multi-Threading erneut interviewt und wieder überprüft, um mein Verständnis von Multi-Threading zu vertiefen.
1. Was ist ein Prozess?
1). Um Themen zu verstehen, müssen wir zuerst den Prozess verstehen. In Laiengesicht ist ein Prozess eine Anwendung im System.
2). Jeder Thread existiert unabhängig und läuft in seinem dedizierten und geschützten Speicherraum.
3). Zum Beispiel werden beim Öffnen des QQ- oder Xcode -Systems zwei Prozesse separat geöffnet, wie in der Abbildung gezeigt:
4) Wir können die im Mac -System aktivierten Prozesse über den "Aktivitätsmonitor" anzeigen.
2. Was ist ein Thread?
1). Ein Vorgang muss Threads haben, um Aufgaben auszuführen, dh ein Prozess muss mindestens einen Thread haben.
2). Themen sind die grundlegende Ausführungseinheit eines Prozesses, und alle Aufgaben eines Prozesses (Programm) werden im Thread ausgeführt.
3). Zum Beispiel müssen Sie mit Kugou Musik spielen und Thunder zum Herunterladen von Filmen im Thread herunterladen, wie in der Abbildung gezeigt:
3. Was ist Thread -Serie?
1). Ein Thread wird seriell ausgeführt (nacheinander ausgeführt), was bedeutet, dass ein Thread nur eine Aufgabe innerhalb der gleichen Zeit ausführen kann.
2). Serielles Ausführungsdiagramm wie ein Thread lädt 3 Dateien herunter (Dateien A, B, C)
4. Was ist Multi-Threading?
1). Mehrere Fäden können in einem Prozess geöffnet werden, und jeder Thread kann gleichzeitig unterschiedliche Aufgaben (gleichzeitig) ausführen.
2) .Simile Beziehungsliste: Prozess ----> Workshop; Thread ----> Workshop-Arbeiter
3). Multi-Thread-Diagramm, z. B. das Öffnen von 3 Threads gleichzeitig zum Herunterladen von 3 Dateien (Dateien A, B, C)
5. Multithreading -Prinzip
1). Gleichzeitig kann die CPU nur einen Thread ausführen und nur ein Thread funktioniert (Ausführung).
2). Multi-threadd-gleichzeitige (gleichzeitige) Ausführung ist tatsächlich die CPU-Zeitpläne (Switches) zwischen mehreren Threads.
3). Wenn die CPU schnell genug Threads plant, wird dies die Illusion einer gleichzeitigen Ausführung von Multi-Thread verursachen.
4). Nachteile des Multithreading:
1. Jeder Thread belegt eine bestimmte Menge an Speicherraum (standardmäßig: Der Haupt -Thread nimmt 1 MB und der untergeordnete Thread 512 kb).
Wenn zu viele Fäden eingeschaltet sind, nimmt es viel Speicherplatz ein, was dazu führt, dass die Programmleistung verschlechtert wird.
2. Je mehr Fäden, desto größer ist der Overhead des CPU -Planungs -Threads (ähnlich wie die mehr Fabrikarbeiter, desto größer der Fabrikaufwand).
3. Die Programmierung komplexer: wie die Kommunikation mit Multi-Thread-Daten und die Datenaustausch zwischen mehreren Threads.
5). Vorteile des Multithreading:
1. kann die Ausführungseffizienz des Programms angemessen verbessern.
2. kann die Ressourcenauslastung angemessen verbessern (CPU und Speicherauslastung)
6. Was ist der Hauptfaden?
1). Ein Thread wird standardmäßig geöffnet, nachdem ein iOS -Programm geöffnet wurde. Dieser Thread wird als "Haupt -Thread" oder "UI -Thread" bezeichnet.
2). Die Hauptfunktionen des Hauptfadens:
1. Anzeige/Aktualisieren Sie die UI -Schnittstelle
2. Handle UI -Ereignisse (z. B. Klickereignisse, Scrollereignisse, Ziehenereignisse usw.).
3). Anmerkungen zum Haupt -Thread:
1. Stellen Sie keine zeitaufwändigen Operationen in den Hauptfaden. Zeitaufwändige Operationen im Haupt-Thread verursachen die Programmverzögerung.
7. zeitaufwändige Operation Demo
1) Demo, die direkt im Haupt -Thread läuft
. UI-Operation zum Stottern [selbst langjährig];}#Pragma Mark-Time-konsumierende Operation- (void) Langzeitoperation {für (int i =; i <; i ++) {nslog (@"%d", i);}}}}}}}}}}}}}}}}}}}}}}}}}}}}2) Demo, das im Kinderfaden läuft
. Im untergeordneten Thread, ohne die UI-Operation zu beeinflussen [Self-Performseltectorinbackground: @selektor (langjährig) WithObject: nil];}#Pragma Mark-Time-konsumierende Operation- (void) Langzeitoperation {für (int i =; i <;Der obige Inhalt ist das Multi-Threading-Wissen über iOS, das Ihnen vom Herausgeber vorgestellt wurde. Ich hoffe, es wird für Sie hilfreich sein!