Bonjour à tous,
Je me pose actuellement la question de savoir si différents éléments d'un std::vector peuvent être écrits, en même temps, par plusieurs threads différents.
Par exemple :
Dans un premier temps, considérant qu'aucune lecture/écriture dans monVector n'est fait en parallèle, ailleurs que les-dits threads.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 void write_something_in(float & val) { val = .0f; } void thread_launcher() { //... for(auto & i:monVector) { std::thread monThread(write_something_in, *i); monThread.detach(); } }
Si je pose cette question, c'est parce que j'ai cru comprendre que la lecture simultanée d'un (élément de ?) vector est possible mais pas l'écriture... C'est là où j'ai besoin d'éclaircissements. Car l'écriture sur un même élément, je comprends, mais je ne vois pas pourquoi l'écriture sur des éléments différents ne le serait pas.
Une piste ?
merci d'avance.
Partager