Attention, votre navigateur ne supporte pas le javascript ou celui-ci a été désactivé. Certaines fonctionnalités dynamiques de ce module sont restreintes.
Regardez l'extrait vidéo et complétez le texte suivant.
Je lis une donnée dans le SGBD à l'adresse mémoire A, je range cela dans la variable interne de mon programme que j'ai appelée X, j'incrémente X de 10, je ré-écris à la mémoire A la valeur de X. Voici des programmes. Je les ai appelés T pour transaction. La concurrence, c'est le système qui vous segmente l'exécution de vos instructions en fonction de critères qui lui sont propres. Ce qui fait que, quand vous faites une exécution concurrente, vous avez un processeur qui ne peut exécuter qu'une instruction à la fois. Cela revient à dire que j'ai un premier programme avec quelques instructions, j'ai un deuxième programme avec quelques instructions, j'ai un système d'exploitation qui les imbriquent. Cela, c'est une exécution concurrente. Si j'ai deux programmes de n instructions, j'ai n² possibilités de mélanger les instructions. Le processeur, quand il fait des exécutions concurrentes, quand il gère vos threads, il travaille par unités de temps.
Il donne autant d'unités de temps à tel processus, autant d'unités de temps à tel processus etc. Sauf que, pendant cette unité de temps, vos instructions ne prennent pas forcément le même temps que l'instruction du voisin. Je dirais même plus : lire la même donnée à deux moments différents de votre programme, cela ne prend pas le même temps. En plus, en fonction de la configuration des disques, des instructions prennent plus ou moins de temps.