Junior
Qu'est-ce qu'un processus et un thread ? En quoi diffèrent-ils ?
sobes.tech IA
Réponse de l'IA
Un processus est un programme en cours d'exécution disposant de son propre espace d'adressage, de ressources (descripteurs de fichiers, connexions réseau) et de contexte d'exécution.
Un thread (fil d'exécution, thread) est la plus petite unité d'exécution au sein d'un processus. Un processus peut contenir un ou plusieurs threads, qui partagent ses ressources mais ont leur propre pile d'appels, contexte d'exécution et compteur d'instructions.
Principales différences:
| Caractéristique | Processus | Thread |
|---|---|---|
| Isolation | Complète. Un processus n'affecte pas un autre. | Partielle. Les threads partagent les ressources du processus. |
| Échange de données | Via IPC (communication inter-processus). | Léger. Via des variables communes dans le processus. |
| Changement de contexte | Coûteux. Nécessite de sauvegarder et restaurer tout l'état du processus. | Moins cher. Nécessite de sauvegarder et restaurer l'état du thread. |
| Création | Coûteuse. Nécessite l'allocation de ressources. | Plus économique. Nécessite l'allocation d'une pile. |
| Fin | La fin du processus entraîne la fin de tous ses threads. | La fin d'un thread n'affecte pas les autres threads ni le processus. |
Exemple de création de processus (commande externe) en Java:
// Java
Process process = Runtime.getRuntime().exec("ls -l");
// Travailler avec le processus : obtenir entrée/sortie, etc.
Exemple de création de thread en Java:
// Java
Runnable task = () -> {
System.out.println("Bonjour du thread : " + Thread.currentThread().getName());
};
Thread thread = new Thread(task);
thread.start(); // Démarrer le thread