It depends on what you're doing. For real-time applications you simply cannot use locks in a real-time thread, because there is no guarantee that you will unlock within your deadline. This is common in audio programming, where missing your deadline causes glitches in the audio stream.
It's definitely niche, but when you need them, you really need them.
It's definitely niche, but when you need them, you really need them.