> Il me semble de la difference entre multitâche et multithread est: > La différence entre le fait de lancer plusieurs tâches en parallel > et le fait de converser avec plusieurs interlocuteurs simultanément.
Petit complément historique: pendant longtemps, le monde UNIX ne connaissait du multi-tâche que le multi-processus, et pas le multi-thread. En effet, le modèle fork(2) était très efficace, en particulier avec le copy-on-write et d'autres optimisations. D'autres plateformes non standard avaient, elles, d'horribles problèmes de performance avec leur CreateProcess() et équivalents. Ce qui fait que les `threads' (en tant qu'unités de travail séparées, avec pile d'exécution séparée mais pour le reste partageant tout au sein d'un processus) sont devenues très populaires en dehors d'UNIX. Les threads ont certes été standardisées et même implémentées, mais plusieurs modèles ont vu le jour: threads au sein d'un processus, threads comme processus légers gérés par l'OS. Aussi, certains langages ont implémentés des threads et ont poussé leur utilisation (Java p.ex.). Aujourd'hui, le modèle UNIX des processus avec isolation forte reste un modèle très fiable, très simple et très performant. On peut l'exploiter avec le shell comme Félix le fait, ou dans quasiment tous les langages de programmation. Avec l'avantage sous Linux qu'on peut passer continument d'un thread à un processus grâce à clone(2): on choisit ce qu'on veut partager! A mon avis: Aujourd'hui, le mot multi-thread est gentinement devenu synonyme de plusieurs flots d'exécution concurrents sans forcément départager entre modèle processus ou modèle thread, même si bien souvent c'est le modèle thread qui est sous-entendu. _______________________________________________ gull mailing list [email protected] https://forum.linux-gull.ch/mailman/listinfo/gull
