OVH Cloud OVH Cloud

Conteneurs STL et thread-safety

21 réponses
Avatar
Marc Duflot
Bonjour à tous.

Comment ça va sur fclc++ depuis les années ?

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.

Merci.

1 réponse

1 2 3
Avatar
kanze
Gabriel Dos Reis wrote:
James Kanze 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

1 2 3