\chapter{threads}
\index{threads}

% ----------------------------------------------------------------

Ahemmm, par quoi commencer\footnote{Par de l'aspirine ?} ? Par un
extrait de la page \texttt{pthreads(6)} ? Voilà, ça c'est bien :

\begin{quote}
POSIX.1 specifies a set of interfaces (functions, header files) for
threaded programming commonly known as Pthreads.
A single process can contain multiple threads, all of which are
executing the same program.  These threads share the same global
memory (data and heap segments), but each thread has its own stack
(automatic variables).
\end{quote}

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~».

% ----------------------------------------------------------------

\section{ITC}
\index{ITC} 

\textit{Inter Thread Communication}

Imaginons une application avec un thread qui fait le travail effectif
(nous le nommerons \textsl{worker}), et plusieurs autres threads
qui attendent des ordres de l'extérieur (telnet, MIDI\index{MIDI},
joystick\index{joystick}\dots) et qui doivent passer ces commandes
au \textsl{worker}.

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}

% ----------------------------------------------------------------






