Table des matières
Quelle différence entre les processus et les threads?
Les processus et les threads sont des séquences d’exécution indépendantes. La différence typique est que les threads (du même processus) s’exécutent dans un espace mémoire partagé, tandis que les processus s’exécutent dans des espaces mémoire séparés. Je ne sais pas à quels threads « matériel » vs « logiciel » vous faites peut-être référence.
Quel est le mécanisme de synchronisation des threads?
Là où deux processus séparés doivent utiliser un mécanisme fourni par le système pour communiquer, les threads partagent une partie de l’état du processus, notamment sa mémoire. Dans le cas de données en lecture seule, il n’y a même pas besoin du moindre mécanisme de synchronisation pour que les threads utilisent les mêmes données.
Quel est l’avantage des threads natifs?
L’avantage des threads natifs est qu’ils permettent des performances maximales, car leur API permet de minimiser le temps passé dans le noyau et d’éliminer les couches logicielles inutiles. Leur principal inconvénient est, de par la nature primitive de l’API, une plus grande complexité de mise en œuvre.
Comment se fait l’utilisation des threads?
Notamment, les fonctions utilisées par les threads doivent être réentrantes ou protégées par mutex. En programmation orientée objet, l’utilisation des threads se fait en général par héritage depuis une classe mère (ou modèle de classe) générique, possédant une méthode virtuelle pure qui contiendra le code à exécuter en parallèle.
Comment créer un nouveau thread?
Pour créer un nouveau thread, un thread existant (oeuf ou poule, un processus est déjà un thread) va appeler la fonction pthread_create () qui duplique la pile du thread existant et qui duplique l’état du processeur. Le scheduler du noyau va donc voir une nouvelle entrée. Exemple de mémoire d’un processus auant 2 threads :
Quels sont les threads matériels?
Seul un thread est une séquence d’exécution – un processus est un conteneur qui peut contenir une ou plusieurs séquences d’exécution. Les «threads matériels» sont des threads auxquels sont attribuées des ressources matérielles individuelles (un noyau, un processeur ou un hyperthread séparé).