Accès aux données d'une classe par plusieurs threads
Bonjour à tous,
Je suis débutant dans le multi-threading en C++11 et j'aurais besoin de quelques conseils pour le cas suivant :
J'ai cette classe :
Code:
1 2 3 4 5 6 7 8 9
|
class Toto
{
public:
// ...
private:
std::vector<A> a_;
std::vector<B> b_;
}; |
Avec a_ et b_ qui vont être accédés (lecture et écriture) en permanence par 2 threads.
Il me semble que la solution classique est d'encapsuler l'accès à ces données dans des méthodes protégées par des std::mutex, mais je trouve cela assez fastidieux.
J'ai vu que std::atomic permet de rendre les opérations sur des données thread-safe, mais ça ne marche que pour les types de base non ?
Merci de me faire profiter de votre expérience pour me dire quelle est la meilleure méthode à adopter ici :)