I've done implementations of most of these (qsbr, ebr, atomic reference counting, hazard pointers w/o the store/load memory barrier (you're welcome btw), etc...) and have a pretty good idea of how they work and how to use them. I think there should be more articles on how to use them properly. It's not obvious and can be a bit tricky if you don't have experience in this area.
A simple example would be how to implement a simple linked list that can be traversed safely under concurrent modifications.
A simple example would be how to implement a simple linked list that can be traversed safely under concurrent modifications.