Multithreading
Le
ALB
Bonjour à tous,
je n'ai jamais fait de multithreading et je cherche une référence
(anglais ou français) pour apprendre, qui remplirait notamment les
critères suivants :
- indique les design patterns qui passent bien (et ceux à éviter), les
bonnes pratiques,
- non spécifique à une plateforme.
Adrien
je n'ai jamais fait de multithreading et je cherche une référence
(anglais ou français) pour apprendre, qui remplirait notamment les
critères suivants :
- indique les design patterns qui passent bien (et ceux à éviter), les
bonnes pratiques,
- non spécifique à une plateforme.
Adrien

Poser une question


http://www.google.fr/search?q=multithreading
"Programming with POSIX threads", David R. Butenhof.
http://www.amazon.fr/P/dp/0201633922/
Il parle des threads POSIX en langage C, mais les principes de
fonctionnement sont les mêmes sous Windows et en C++.
Cf aussi Boost.
Oui et non. En effet, c'est un livre excellent pour les threads,
et comme tu dis, beaucoup des principes sont pareils en Windows.
(Encore que... Windows n'a pas de « condition », ou ne l'avait
pas pendant longtemps.) Reste qu'il se positionne à un niveau
assez bas (mais qu'il faut comprendre), et ne s'adresse pas à
des questions plus élevées, du genre des modèles de conception à
utiliser en C++. Il y a effectivement un trou entre lui et des
livres de conception C++, et je ne connais rien qui s'y
position. Un livre, par exemple, qui expliquerait les
différentes façons d'organiser les threads en classes. (J'en
connais trois ou quatre, dont la plus répandue est à mon avis à
éviter.) Ni des modèles de communication entre les threads --
comment implémenter un queue de messages, par exemple. (Dans mon
cas, par exemple, j'ai choisi d'utiser auto_ptr au niveau de
l'interface -- une fois l'objet passé à l'autre thread, le
thread émitteur n'en a plus accès.) Et comment effectuer un
arrêt propre ?
Boost a l'avantage d'offrir une interface portable au primitifs
du threading (et de simuler les condition sous Windows), mais là
aussi, son concept de « thread » est de vraiment bas niveau,
et assez délicat à l'utilisation. Il vaut mieux donc le wrapper
avec quelque chose qui implémente une abstraction plus élevée.
--
James Kanze (GABI Software) email:
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
On 18 jan, 09:29, James Kanze
Dans une certaine mesure, il y a les bouquins et articles de Schmidt,
non? Ils sont très orientés patterns avec pour exemple
d'implémentation sa bibliothèque, ACE -- dont je te sais peu
partisant.
Ta parenthèse m'interresse. Tu pourrais développer STP (un lien ou un
nom m'irait).
Mais, cela ne résout pas le cas où il faut passer le message à
plusieurs threads.
--
Luc Hermitte
J'allais aussi citer Schmidt, mais tu as dégainé le premier.
Ca m'interesse aussi. Je connais au moins une facon de faire (celle
de Boost), mais je ne sais pas si c'est la plus répandue... Bref, si
tu pouvais nous donner quelques indications, je suis preneur, merci
d'avance.
Dans ce dernier cas, est ce qu'on peut vraiment eviter d'avoir
une queue par thread, et donc il faudra bien dupliquer le message
a un moment ou un autre ?