Je débute avec la programmation multi-threaded. La preuve, j'ignore même
comment on dit « multi-threaded » ou « thread-safety » en français.
J'aimerais savoir quelles sont les garanties que les conteneurs de la
bibliothèque standard se comportent de la manière attendue dans un
programme multi-threaded. Je suis bien conscient que ce n'est
certainement pas précisé dans la norme du C++ mais en pratique, qu'en
est-il des compilateurs et bibliothèques actuelles ?
Pour donner un exemple, si je fais des insertions, lectures et
suppressions dans une std::map partagé pas plusieurs threads, est-il
nécessaire de placer des locks autour de ces opérations ?
Si cela a de l'importance, mon environnement de développement est le
compilateur Intel C++ avec parallélisation avec OpenMP sur Itanium 2. La
biblio est donc celle de dinkumware, dont la documentation précise
qu'elle est thread-safe (http://www.dinkumware.com/libcpp.html) mais
sans donner plus de garantie.
| Je te crois -- à l'époque, je | crois que les gens compilaient le noyau eux-mêmes.
Mais c'est indépendant -- je continue à compiler le noyau :-)
Moi, je suis paresseux. J'ai acheté le CD de Mandrake. Il s'installait automatiquement, aussi facilement que d'installer Solaris sur un Sparc. Seulement, les options qui ont servi à générer g++ ne convenait pas à l'utilisation des .so. Et AMHA, pour l'utilisateur beta, ce n'est pas si évident que ça qu'il faut --enable-__cxa_atexit pour que tout marche.
-- James Kanze GABI Software 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
Gabriel Dos Reis wrote:
James Kanze <kanze@none> writes:
[...]
| Je te crois -- à l'époque, je
| crois que les gens compilaient le noyau eux-mêmes.
Mais c'est indépendant -- je continue à compiler le noyau :-)
Moi, je suis paresseux. J'ai acheté le CD de Mandrake. Il
s'installait automatiquement, aussi facilement que d'installer
Solaris sur un Sparc. Seulement, les options qui ont servi à
générer g++ ne convenait pas à l'utilisation des .so. Et AMHA,
pour l'utilisateur beta, ce n'est pas si évident que ça qu'il
faut --enable-__cxa_atexit pour que tout marche.
--
James Kanze GABI Software
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
| Je te crois -- à l'époque, je | crois que les gens compilaient le noyau eux-mêmes.
Mais c'est indépendant -- je continue à compiler le noyau :-)
Moi, je suis paresseux. J'ai acheté le CD de Mandrake. Il s'installait automatiquement, aussi facilement que d'installer Solaris sur un Sparc. Seulement, les options qui ont servi à générer g++ ne convenait pas à l'utilisation des .so. Et AMHA, pour l'utilisateur beta, ce n'est pas si évident que ça qu'il faut --enable-__cxa_atexit pour que tout marche.
-- James Kanze GABI Software 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