Pourquoi un modèle à thread unique est-il utilisé pour mettre à jour l'UI en tant que thread principal?

Le docteur Qt dit:

Comme mentionné, chaque programme a un seul thread lorsqu'il est démarré. Ce thread s'appelle le «thread principal» (également connu sous le nom de «thread GUI» dans les applications Qt). L'interface graphique Qt doit s'exécuter dans ce thread.

  • Conflit avec le package Android - Amazon SNS
  • Communication entre webview et code natif dans une application mobile
  • Logcat peut-il être utilisé pour enregistrer le code NDK dans Android? Ou qu'est-ce que les options de journalisation de NDK?
  • Android téléchargeant des images vers un serveur de la manière la plus efficace
  • TextInputLayout: couleur différente pour l'étiquette d'indice lorsqu'elle n'est pas concentrée
  • OnItemClickListener ne lance pas sur Custom ArrayAdapter
  • Le docteur Android dit:

    Comme les activités et les autres composants, les services fonctionnent dans le processus principal du processus de demande

    Et iOS,

    Il est fortement recommandé de ne pas mettre à jour les contrôles UI, etc. à partir d'un thread en arrière-plan (par exemple, une minuterie, des communications, etc.). Cela peut être à l'origine de collisions parfois difficiles à identifier. Utilisez plutôt ces pour forcer le code à être exécuté sur le thread UI (qui est toujours le thread "principal").

    Pourquoi utilisent-ils un seul modèle threadé pour mettre à jour l'IU?

  • Autorisations insuffisantes pour un périphérique dans l'espace de travail Android Studio en cours d'exécution dans openSUSE 13.2
  • Quel composant de vue utilise-t-il l'application Google Plus (Stream)?
  • Gestion de session Android
  • Comment savoir qu'une application est installée depuis Google Play ou side-load?
  • Java.lang.UnsupportedOperationException: Service non pris en charge: accessibilité studio Android
  • Android scrollback alphabétique rapide dans la barre d'outils RecyclerView avec Collapsing
  • One Solution collect form web for “Pourquoi un modèle à thread unique est-il utilisé pour mettre à jour l'UI en tant que thread principal?”

    La réponse courte est que c'est le seul moyen raisonnable de s'assurer que l'affichage n'est pas endommagé.

    La longue réponse est que permettre à plusieurs threads de mettre à jour les résultats de l'interface utilisateur dans les blocages, les conditions de course et toutes sortes de problèmes. C'était la leçon douloureuse enseignée par l'AWT de Java (parmi d'autres systèmes UI) qui permet à plusieurs threads de toucher l'interface utilisateur. Voir, par exemple, cette publication de blog .

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.