Thème principal par rapport au fil d'interface utilisateur en Java
Lors du développement d'applications Swing, vous pouvez rencontrer des extraits de code utilisant SwingUtilities#invokeLater à partir de la méthode principale pour créer l'interface utilisateur. Cependant, la documentation officielle de Swing suggère que la création de l'interface utilisateur à partir du thread principal est sûre.
Cette divergence soulève la question : existe-t-il une véritable raison de construire l'interface utilisateur dans le thread principal via SwingUtilities#invokeLater, ou est-ce que est-ce simplement une bonne habitude de le garder cohérent avec son utilisation dans d'autres cas ?
La réponse réside dans la « règle Swing single-thread », comme indiqué dans Java Concurrency in Practice et corroboré par d'autres sources. Cette règle stipule que les composants et modèles Swing doivent uniquement être créés, modifiés ou interrogés à partir du thread de répartition des événements. S'écarter de cette règle peut conduire à un comportement peu fiable lors de la construction, de la modification ou de l'interrogation de composants ou de modèles, car ils supposent souvent le respect de cette règle.
Le code qui semble fonctionner correctement peut présenter des échecs mystérieux dans différents environnements si le Swing la règle du seul thread est violée. Pour garantir une utilisation correcte, vérifiez votre code par rapport aux directives fournies dans les sources de référence.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!