more blabla again and again
This commit is contained in:
@@ -20,8 +20,38 @@ memory (data and heap segments), but each thread has its own stack
|
||||
|
||||
Et c'est là que les ennuis potentiels débarquent :
|
||||
\textit{share the same global memory}, ce qui veut dire en gros
|
||||
«~se partagent la même mémoire globale~».
|
||||
«~se partagent la même mémoire globale~». Et en français de tous
|
||||
les jours, «~ils vont se marcher sur les pieds~».
|
||||
|
||||
D'un autre coté, ce paradigme permet de faire des choses assez
|
||||
choupi, comme un synthétiseur d'évènement.
|
||||
|
||||
% ----------------------------------------------------------------
|
||||
\section{Un exemple}
|
||||
|
||||
Nous allons partir sur un exemple peu réaliste, mais simple
|
||||
à comprendre. Nous aurons un seul fil d'exécution qui affichera
|
||||
un compteur, puis l'incrémentera. Pendant ce temps, la branche
|
||||
principale du programme mettra du random dans le compteur, en
|
||||
espérant perturber l'autre branche.
|
||||
|
||||
\lstinputlisting[language=c]{code/thread-demo.c}
|
||||
|
||||
Voilà, nous avons là deux \textsl{race conditions} qui
|
||||
peuvent avoir des effets pervers~: Ils vont
|
||||
effectivement se marcher sur les pieds.
|
||||
|
||||
Dans le thread
|
||||
(la fonction \texttt{fil}), le
|
||||
compteur est incrémenté, \textbf{puis} il est affiché.
|
||||
Si la branche principale poke du random dans le compteur
|
||||
entre ces deux opérations, *paf* le chien.
|
||||
Et réciproquement, si le \texttt{main} pose son aléa dans
|
||||
le compteur, \textbf{puis} l'affiche, cet aléa peut avoir
|
||||
été incrémenté par l'autre partie du processus.
|
||||
|
||||
|
||||
%
|
||||
% ----------------------------------------------------------------
|
||||
|
||||
\section{ITC}
|
||||
@@ -39,12 +69,7 @@ Comment allons-nous procéder\footnote{Et c'est une vraie question !} ?
|
||||
|
||||
Une première piste : http://tools.ietf.org/html/rfc3117
|
||||
|
||||
% ----------------------------------------------------------------
|
||||
\section{Un exemple}
|
||||
|
||||
XXX\index{XXX}
|
||||
|
||||
% ----------------------------------------------------------------
|
||||
% ----------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user