1. Scénarios d'application du mécanisme de réflexion
(Tutoriels associés recommandés : questions d'entretien Java)
Code inversé, tel que la décompilation
Un framework combiné à des annotations telles que Retrofit
Mécanisme de réflexion pure Application des frameworks tels que EventBus 2.x
Génération dynamique de frameworks de classes tels que Gson
2. Qu'est-ce que le multi-threading ?
Le multi-threading fait référence à la technologie qui réalise l'exécution simultanée de plusieurs threads à partir d'un logiciel ou d'un matériel. Dans un programme, ces fragments de programme exécutés indépendamment sont appelés « threads », et le concept de programmation qui les utilise est appelé « multi-threading ».
Les ordinateurs dotés de capacités multithread peuvent exécuter plus d'un thread en même temps grâce à la prise en charge matérielle, améliorant ainsi les performances globales de traitement.
Le thread principal est le premier thread généré dans le processus de création, qui est le thread correspondant à la fonction principale.
(Apprentissage recommandé : Programme d'introduction à Java)
3. Parlez-moi des avantages du multi-threading ?
1. Avantages du multi-threading
Le coût de création d'un nouveau fil est bien inférieur à celui de la création d'un nouveau processus
La commutation entre les threads nécessite que le système d'exploitation fasse très peu de travail par rapport à la commutation entre les processus
Les threads occupent beaucoup moins de ressources que les processus
Peut utiliser pleinement le nombre parallèle de multiprocesseurs
Après avoir attendu la fin de la lente opération d'E/S, le programme peut effectuer d'autres tâches informatiques
Applications gourmandes en informatique (CPU), afin de fonctionner sur des systèmes multiprocesseurs, le calcul est décomposé en plusieurs threads pour mettre en œuvre
Applications gourmandes en IO , afin d'améliorer les performances, les opérations d'E/S se chevauchent et les threads peuvent attendre différentes opérations d'E/S.
2. Inconvénients du multi-threading
Perte de performances (un thread gourmand en calcul est rarement bloqué par des événements externes et ne peut pas communiquer avec d'autres Les threads partagent le même processeur. Lorsque le nombre de threads gourmands en calcul est supérieur au nombre de processeurs disponibles, il peut y avoir une perte de performances importante. La perte de performances fait ici référence à la surcharge de synchronisation et de planification supplémentaire.)
Robustesse réduite (il y a un manque de protection entre les threads. Dans un programme multi-thread, du fait de la légère différence d'allocation de temps ou du partage de certains. L'impact possible des effets indésirables sur les variables qui devrait être partagé est important)
Manque de contrôle d'accès (car les processus constituent la granularité de base du contrôle d'accès, appelant certains systèmes d'exploitation dans un thread. Les fonctions affecteront l'ensemble du processus)
La difficulté de programmation augmente (l'écriture et le débogage d'un programme multithread sont beaucoup plus difficiles qu'un programme monothread.)
4 . Quelle est la différence entre les threads et les processus ?
1. Planification
Un processus est une unité de base permettant au système d'exploitation d'allouer des ressources. Les threads sont l’unité de base de la planification du processeur.
2. Concurrence
Après l'introduction des threads, non seulement les processus peuvent être exécutés simultanément, mais plusieurs threads dans un processus peuvent également être exécutés simultanément, permettant même à un seul de s'exécuter. simultanément.
De même, les threads de différents processus peuvent également s'exécuter simultanément. Cela permet au système d'exploitation d'avoir une meilleure simultanéité, améliorant ainsi l'utilisation des ressources et le débit du système.
3. Posséder des ressources
Un processus peut posséder des ressources et constitue l'unité de base permettant au système de posséder des ressources. Le thread lui-même ne possède pas de ressources système, seulement certaines ressources pouvant assurer un fonctionnement indépendant. Cette ressource est privée à chaque thread.
Par exemple, l'ID du thread, un ensemble de registres, la pile, le numéro d'erreur, le mot du masque de signal (il n'y a qu'un seul signal en attente dans un processus, mais n'importe quel thread peut gérer ce signal), la priorité de planification.
4. Indépendance
L'indépendance des threads dans le même processus est bien inférieure à celle des différents processus.
5. Frais généraux du système
Les frais généraux de commutation de threads sont inférieurs aux frais généraux de commutation de processus
Prise en charge du système multiprocesseur
Pour. les processus traditionnels, c'est-à-dire un processus monothread, quel que soit le nombre de processeurs, le processus ne peut s'exécuter que sur le même processeur, mais pour un processus multithread, plusieurs threads d'un processus peuvent être attribués à plusieurs processeurs, de sorte que son exécution simultanée accélère l’achèvement du processus.
(Tutoriel vidéo recommandé : Tutoriel vidéo Java)
5. Scénarios d'application de processus et de threads
Nécessité de créer et de détruire fréquemment des fils de discussion prioritaires.
Donnez la priorité aux threads qui nécessitent des calculs lourds.
Les threads sont utilisés pour les corrélations fortes, et les processus sont utilisés pour les corrélations faibles.
Il peut être étendu pour utiliser des processus pour la distribution multi-machines et des threads pour la distribution multicœur.
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!