Vous avez seulement besoin d'un mutex pour protéger les objets auxquels plusieurs threads accèdent, où au moins un de ces threads modifie l'objet.
Si votre matrice est redimensionnée avant tous les threads y accèdent (par exemple avant que les threads ne soient démarrés) alors vous avez seulement besoin d'un mutex si plus d'un thread accède à la même cellule. Si vos threads accèdent à des cellules différentes, à condition qu'aucune d'entre elles ne redimensionne la matrice, tout sera OK.
Si un thread écrit dans une cellule et qu'un autre lit dans la même cellule, les deux threads doivent verrouiller le même mutex avant d'accéder à cette cellule. Si deux thread écrivent dans la même cellule, les deux threads doivent à nouveau verrouiller le même mutex. Cela peut être un mutex différent de celui utilisé pour les autres cellules, ou il peut être le même.
Si un thread modifie la structure de la matrice alors que tous les autres threads accèdent à la matrice, tous les threads impliqués doivent verrouiller le même mutex. Cela peut être un mutex différent pour tous les mutex utilisés pour des cellules individuelles, ou il peut être le même.
Oui, la matrice ne va pas être redimensionnée. Merci, ça a marché. –