Différence entre processus et fil
Afin de permettre aux ordinateurs de faire plus d'une activité à la fois, les processus et les threads fournissent un excellent service, mais il y a une différence entre eux dans leur fonctionnement. Tous les programmes exécutés sur un ordinateur utilisent au moins un processus ou un thread. Process et thread permettent au processeur de basculer facilement entre plusieurs tâches tout en partageant les ressources de l'ordinateur. Il est donc du devoir d'un programmeur d'utiliser des threads et des processus de manière efficace pour faire un processeur avec de hautes performances. La mise en œuvre des threads et des processus diffère selon le système d'exploitation disponible.
Qu'est-ce qu'un processus?Un processus, en général, est une série continue d'actions pour atteindre un résultat spécifique. Mais, dans le monde des ordinateurs, un processus est
une instance d'un programme d'ordinateur en cours d'exécution. Autrement dit, c'est une idée d'une seule occurrence d'un programme d'ordinateur en cours d'exécution. Des processus simples exécutent des binaires qui contiennent un ou plusieurs threads. Selon le nombre de threads impliqués dans un processus, il existe deux types de processus. Ce sont des processus mono-thread et des processus multi-thread. Comme son nom l'indique, un processus
single-thread est un processus qui n'a qu'un seul thread. Par conséquent, ce thread est un processus, et il n'y a qu'une seule activité en cours. Dans un processus multi-thread , il y a plus d'un thread et il y a plus d'une activité qui se produit.
Qu'est-ce qu'un thread?
Dans le monde de l'informatique, un thread est
la plus petite exécution des instructions d'un programme informatique qui peut être géré indépendamment selon un planning. Un thread est un simple chemin d'exécution dans un processus . Un thread est aussi puissant qu'un processus car un thread peut faire tout ce qu'un processus peut faire. Un fil est un processus léger et nécessite seulement moins de ressources. Les threads peuvent lire et écrire les mêmes variables et la même structure de données. Thread peut communiquer entre les threads facilement.
Mutli-threading
Quelle est la différence entre Process et Thread?
• Les processus sont difficiles à créer car ils nécessitent une duplication du processus parent et de l'allocation de mémoire, tandis que les threads sont faciles à créer puisqu'ils ne nécessitent pas d'espace d'adressage séparé.
• Les threads sont utilisés pour des tâches simples tandis que les processus sont utilisés pour des tâches lourdes telles que l'exécution d'une application.
• Les processus ne partagent pas le même espace d'adressage, mais les threads d'un même processus partagent le même espace d'adressage.
• Les processus sont indépendants les uns des autres, mais les threads sont interdépendants car ils partagent le même espace d'adressage.
• Un processus peut comporter plusieurs threads.
• Étant donné que les threads partagent le même espace d'adressage, la mémoire virtualisée n'est associée qu'aux processus mais pas aux threads. Mais un processeur virtualisé distinct est associé à chaque thread.
• Chaque processus a son propre code et ses propres données tandis que les threads des processus partagent le même code et les mêmes données.
• Chaque processus commence par un thread principal, mais il peut créer des threads supplémentaires si nécessaire.
• La commutation de contexte entre les processus est beaucoup plus lente que le changement de contexte entre les threads d'un même processus.
• Les threads peuvent avoir un accès direct à ses segments de données, mais les processus ont leur propre copie de segments de données.
• Les processus ont des overheads mais pas des threads.
Résumé:
Process vs. Thread
Le processus et le thread sont deux techniques utilisées par les programmeurs pour contrôler le processeur et l'exécution des instructions sur un ordinateur de manière efficace. Un processus peut contenir plusieurs threads. Les threads fournissent un moyen efficace de partager de la mémoire même s'il exécute plusieurs exécutions que des processus. Par conséquent, les threads sont une alternative à plusieurs processus. Avec la tendance croissante vers les processeurs multi-core, les threads deviendront l'outil le plus important dans le monde des programmeurs.
Courtoisie d'images:
Exemple de mutithreading par Mattias. Campe (CC BY 2. 0)