2017-03-24 1 views
0

ich weiß, dass die Android-App im Hauptthread bedeutet UI-thread.Ich will wissen, was ist der Haupt-Thread zum Ausführen einer App? Was passiert, wenn wir den Hauptthread nicht zum Ausführen von app verwenden. Warum ist der Hauptthread erforderlich?Was ist der Haupt-Thread in Android?

Antwort

2

Von this link:

Was ist die Notwendigkeit der Haupt-Thread?

Wenn eine Android-Anwendung zum ersten Mal gestartet wird, erstellt das Laufzeitsystem einen einzelnen Thread, in dem alle Anwendungskomponenten standardmäßig ausgeführt werden. Dieser Thread wird im Allgemeinen als Hauptthread bezeichnet. Die Hauptaufgabe des Hauptthreads besteht darin, die Benutzeroberfläche in Bezug auf die Ereignisbehandlung und Interaktion mit Ansichten in der Benutzeroberfläche zu handhaben. Alle zusätzlichen Komponenten, die in der Anwendung gestartet werden, werden standardmäßig auch im Hauptthread ausgeführt.

Warum ist Hauptgewinde notwendig? zu sperren, bis die Aufgabe abgeschlossen ist

Jede Komponente innerhalb einer Anwendung, die die gesamten Anwendung erscheinen wird veranlassen, eine zeitraubende Aufgabe mit dem Haupt-Thread ausführt. Dies führt normalerweise dazu, dass das Betriebssystem dem Benutzer eine Warnung "Anwendung reagiert nicht" anzeigt. Dies ist natürlich weit von dem gewünschten Verhalten für jede Anwendung entfernt. In einer solchen Situation kann dies einfach dadurch vermieden werden, dass die Aufgabe in einem separaten Thread ausgeführt wird, wodurch der Hauptthread ungehindert mit anderen Aufgaben fortgesetzt werden kann.

Bitte beachten Sie den Link, um mehr über Haupt-Thread mit einem Beispiel zu verstehen.

Für weitere Informationen können Sie this link folgen.

3

Nun braucht es einen Thread. Jede App hat mindestens eine - sogar die einfachste Hello World App in der einfachsten Sprache. Ein Thread ist nur eine Reihe von Anweisungen, die auf dem Prozessor ausgeführt werden. Selbst wenn Ihre App gar nicht Multithread ist, wäre die eine Reihe von Anweisungen, die sie ausführt, ein Thread - Sie könnten ihn sogar als Hauptthread bezeichnen, wenn Sie das möchten. Es wäre also buchstäblich unmöglich, überhaupt keinen Hauptfaden zu haben.

Was den Hauptthread besondere in Android macht, ist, dass Sie nur sichtbare Elemente auf, es zu ändern erlaubt. Wenn Android diese Einschränkung nicht hätte, hätten Sie die Möglichkeit, die Bedingungen für Rennen und inkonsistente UIs zu ändern - die Möglichkeit, dass Ansichten in einem Thread geändert werden, während ein anderer auf den Bildschirm zeichnet. Um dies zu verhindern, müssten Sie viel manuell sperren. Stattdessen hat Android entschieden, diese Änderungen nur im Hauptthread zuzulassen. Das verhindert eine große Menge von Timing-Bugs und Race Conditions (allerdings nicht alle, je nachdem, wie Sie Ihre Modelle implementieren).