Cours:InfoEmbarqueeThread : Différence entre versions
Ligne 37 : | Ligne 37 : | ||
<source lang=cpp> | <source lang=cpp> | ||
− | int* memoireAllouee = | + | int* memoireAllouee = nullptr; // On crée un pointeur sur int |
memoireAllouee = malloc(sizeof(int)); // La fonction malloc inscrit dans notre pointeur l'adresse qui a été reservée. | memoireAllouee = malloc(sizeof(int)); // La fonction malloc inscrit dans notre pointeur l'adresse qui a été reservée. | ||
Version du 20 septembre 2023 à 16:52
Sommaire
Kesako
Pile/Tas
zone mémoire | Taille | Usage | Performances |
---|---|---|---|
Stack (pile) | fixe | variables/paramètres ... des fonctions | selon mémoire |
Heap (tas) | sans objet | allocation dynamique | un peu moins rapide (gestion du tas, partage entre thread => doit être thread-safe) |
utilisation de la pile | utilisation du tas |
---|---|
int f1(int n)
{
int res;
res= ...n1;
return res;
}
int main()
{
int a,b;
b=f1(a);
}
|
int* memoireAllouee = nullptr; // On crée un pointeur sur int
memoireAllouee = malloc(sizeof(int)); // La fonction malloc inscrit dans notre pointeur l'adresse qui a été reservée.
Complexe * z1 = new Complexe(2,5);
|
Processus
Le lancement d'un programme sous Unix (norme posix ) entraîne la création d'un nouveau processus et donc l'allocation d'une zone mémoire avec plusieurs parties :
- le segment texte qui contient le programme exécutable
- le segment statique qui contient les objets globaux et statiques
- le segment de pile ( stack ) qui contient les données des fonctions
- le segment de tas ( heap ) qui contient les données allouées dynamiquement ( new / malloc )
Thread
Attention à la durée de vie des objets dans la pile !!! => préférez le tas ?!
spécialisation de la classe QThread
Mutex
Ressources
- https://fr.wikipedia.org/wiki/Thread_(informatique)
- https://doc.qt.io/qt-5/threads.html
- http://tvaira.free.fr/dev/qt/qt-multitache.pdf
- https://www.youtube.com/watch?v=xClAutDf6jE
- https://www.tchap.fr/la-pile-stack-et-le-tas-heap/
- https://cermics.enpc.fr/polys/info1/main/node74.html
- https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c/16595-creez-des-variables-grace-a-lallocation-dynamique