1. Qu'est-ce qu'un processus
Un processus est une instance d'exécution de programme, et un le processus peut allouer des ressources telles que le processeur et la mémoire. Un processus comprend généralement un jeu d'instructions et des ressources système, le jeu d'instructions étant votre code et les ressources système comprenant le processeur, la mémoire, les E/S, etc. (Apprentissage recommandé : Programmation PHP de l'entrée à la maîtrise)
Un processus est un processus d'exécution dynamique d'un programme dans un ensemble de données. Il peut être simplement compris comme "le programme en cours d'exécution". qui est une unité indépendante pour l’allocation et la planification des ressources CPU.
Un processus se compose généralement de trois parties : un programme, un ensemble de données et un bloc de contrôle de processus. Le programme que nous écrivons est utilisé pour décrire les fonctions que le processus doit remplir et comment le réaliser ; l'ensemble de données correspond aux ressources que le programme doit utiliser pendant l'exécution ; le bloc de contrôle de processus est utilisé pour enregistrer les caractéristiques externes du processus ; , décrit le processus de changement d'exécution du processus et le système. Il peut être utilisé pour contrôler et gérer les processus. C'est le seul signe que le système détecte l'existence d'un processus.
La limitation des processus est que les frais généraux de création, d'annulation et de changement sont relativement élevés.
2. Qu'est-ce qu'un thread
Un thread est un flux d'exécution d'un processus. Un thread ne peut pas allouer de ressources système. Il fait partie du processus et s'exécute indépendamment. plus petit que l’unité de processus.
Expliquez : le processus a deux caractéristiques : l'une est la propriété des ressources et l'autre est la planification de l'exécution (jeu d'instructions). Les threads font partie de la planification de l'exécution et font référence au chemin d'exécution du processus, également appelé programme. exécution. Les threads sont parfois appelés processus légers.
Les threads sont un concept développé après des processus. Un thread est également appelé processus léger. Il s'agit d'une unité d'exécution de base du processeur et de la plus petite unité du processus d'exécution du programme. Elle est composée d'un ID de thread, d'un compteur de programme, d'un ensemble de registres et d'une pile. Un processus peut contenir plusieurs threads.
L'avantage des threads est qu'ils réduisent la surcharge d'exécution simultanée des programmes et améliorent les performances de concurrence du système d'exploitation. L'inconvénient est que les threads ne disposent pas de leurs propres ressources système et ne disposent que de ressources essentielles. pendant l'exécution, mais pareil. Chaque thread d'un processus peut partager les ressources système appartenant au processus. Si le processus est comparé à un atelier, alors les threads sont comme des travailleurs dans l'atelier. Cependant, il existe un mécanisme de verrouillage pour certaines ressources exclusives, et une mauvaise manipulation peut provoquer un « blocage ».
La différence entre processus et thread
(1) Un processus est une unité indépendante pour l'allocation et la planification des ressources, tandis qu'un thread est l'unité de base de la planification du processeur
(2) Le même processus peut inclure plusieurs threads, et les threads partagent les ressources de l'ensemble du processus (registres, piles, contexte). Un thread ne peut appartenir qu'à un seul processus, et un processus peut avoir plusieurs threads. Un processus comprend au moins un thread
(3) La création d'un processus appelle fork ou vfork, et la création d'un thread appelle. pthread_create. Une fois le processus terminé, tous les threads qu'il possède seront détruits et la fin d'un thread n'affectera pas la fin des autres threads du même processus
(4) Les threads sont des processus légers, et leur création et destruction nécessite Le temps est beaucoup plus petit que celui du processus. Le CPU est alloué aux threads, c'est-à-dire que les threads s'exécutent réellement sur le CPU.
(5) La synchronisation et l'exclusion mutuelle sont généralement requises lors de l'exécution dans des threads, car ils partagent toutes les ressources du même processus
(6) Les threads ont leurs propres attributs privés TCB, identifiant de thread, Les registres, le contexte matériel et le processus ont également leurs propres attributs privés de bloc de contrôle de processus PCB. Ces attributs privés ne sont pas partagés et sont utilisés pour marquer un processus ou un thread
.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!