Je me demandais pourquoi la solution semblait si complexe, mais j'ai compris les enjeux du ré-ordonnancement des instructions lors d'une compilation optimisée.
Pour le chapitre du lock-free : pour moi il n'est pas nécessaire d'utiliser des mécanismes de synchronisation, si tu ordonnances correctement la mise à jour de ton index et l'accès à la donnée, d'où le nom. L'intégrité de tes indexes est préservée si tu utilises un type qui le garanti (ex : un int ou int* aligné). Je ne vois pas trop l'utilité de spécifier un entiers atomique "std::atomic"... à ce stade de la réflexion, mais sur la section "troisième optimisation" très clairement.
merci.
# merci j'ai appris des choses
Posté par Selso (site web personnel) . En réponse au journal Barrières mémoire et buffers circulaires - Un résultat inattendu. Évalué à 1.
Je me demandais pourquoi la solution semblait si complexe, mais j'ai compris les enjeux du ré-ordonnancement des instructions lors d'une compilation optimisée.
Pour le chapitre du lock-free : pour moi il n'est pas nécessaire d'utiliser des mécanismes de synchronisation, si tu ordonnances correctement la mise à jour de ton index et l'accès à la donnée, d'où le nom. L'intégrité de tes indexes est préservée si tu utilises un type qui le garanti (ex : un int ou int* aligné). Je ne vois pas trop l'utilité de spécifier un entiers atomique "std::atomic"... à ce stade de la réflexion, mais sur la section "troisième optimisation" très clairement.
merci.