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 : Sélectionner tout - Visualiser dans une fenêtre à part
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