Normalement, dans un programme, tu as un seul flux d'exécution. Ton programme commence à un endroit, exécute des instructions et finit à un autre. Mais il ne fait qu'une seule chose à la fois (quand il exécute une fonction, il en exécute pas une autre).
Ce flux d'exécution, c'est un thread. Tu peux en créer d'autres, ce qui permet à ton programme de faire 2 (ou plus) choses en même temps.
Comme si tu avais 2 programmes fonctionnant en même temps, mais qui utiliseraient la même zone mémoire, les même variables...
Par exemple, tu peux en avoir un qui est bloqué en attente de données venant du réseau, tout en en ayant un autre qui traite les évènements clavier/souris ou autre...
Mais ca implique un certain nombre de problème d'accès concurrents quand plusieurs threads accèdent simultanément aux même variables.
Message édité par mrbebert le 09-01-2003 à 20:16:31