vector et thread safe - C++ - Programmation
Marsh Posté le 03-08-2009 à 00:34:57
D'ailleurs il y a moyen de connaitre la réference de l'élement inséré sans utilisé de sémaphore ?
Contexte :
Code :
|
Marsh Posté le 03-08-2009 à 09:31:19
Même avec un mutex pour faire ton back, utiliser b en dehors de la section de critique serait foireux.
Marsh Posté le 03-08-2009 à 09:54:00
gaffe que rendre thread safe des methodes trop fines va pourrir tes perfs car tu vas passer ta vie à entrer/sortir de zone d'attente.
Marsh Posté le 03-08-2009 à 10:51:15
Ben ouais, c'est bien ca le probleme; en fait la question se limitait juste a la methode pour avoir la reference de l'element insere. Pour savoir si il y avait plus direct.
Par contre, comme le sous-entendait Taz, une reference sur un des items de std::vector<> peut me reserver des surprises si un des thread s'amuse a redimensioner la taille du vector et implique une reallocation ...
Marsh Posté le 03-08-2009 à 10:57:50
Si tu veux aller par là, mieux vaut utiliser un vector de smartpointers eux-mêmes threadsafe: comme ça, ce que tu ramasses n'est pas pourri.
Marsh Posté le 03-08-2009 à 13:32:28
Taz a écrit : Si tu veux aller par là, mieux vaut utiliser un vector de smartpointers eux-mêmes threadsafe: comme ça, ce que tu ramasses n'est pas pourri. |
Ca parait deja mieux.
Marsh Posté le 02-08-2009 à 21:48:25
salut,
Les conteneur de la stl sont -ils thread safe ? vector, list
et si non , la meilleur méthode est de les encapsuler dans une classe ?
Merci