Comme le titre l'indique, quelles sont les optimisations du compilateur, du CLR ou du CPU à prendre en compte lors de l'utilisation de threads et de la synchronisation non bloquante? J'ai lu un peu au sujet de la réorganisation des instructions pour améliorer l'efficacité qui pourrait casser des choses, et mettre en cache des optimisations qui se traduiront par des variables n'étant pas visibles aux autres threads tout de suite [0], mais y a-t-il d'autres que je dois savoir?Quelles sont les optimisations du compilateur, CLR ou CPU à prendre en compte lors de l'utilisation de threads et de la synchronisation non bloquante?
Tous les liens vers des lectures/blogs/articles/etc recommandés seront grandement appréciés.
Merci, Egil.
Mise à jour: Merci à lien Jons au blog de Joe Duffy J'ai trouvé beaucoup d'informations plus grande que je pensais que je voudrais partager avec vous les gars:
- L'article premier que point de nombreux est Understand the Impact of Low-Lock Techniques in Multithreaded Apps par Vance Morrison.
- What Every Dev Must Know About Multithreaded Apps, également par Vance Morrison, est un très bon rafraîchissement pour ceux d'entre nous qui ne pas tremper dans des applications multithread par jour. Le 9 Reusable Parallel Data Structures and Algorithms de Joe Duffy est aussi une excellente lecture.
- Plus de la même chose de Jeffrey Richter dans son Concurrent Affairs column Performance-Conscious Thread Synchronization. Son implémentation d'un SpinWaitLock est plutôt sympa. En règle générale, les Concurrency Affairs columns over at MSDN Magazine sont très recommandables.