But not every programmer is going to implement their own lock-free algorithms (http://en.wikipedia.org/wiki/Non-blocking_algorithm). Experts write such algorithms, and other programmers will build their applications on top of those libraries. And even more programmers will use abstractions that aren't even libraries, but language-level abstractions.
I can't say I agree with this. With threading there are certainly extra things that always have to be in the back of your mind, however saying you have to specialize in only writing threading libs is a bit extreme.
Comments
But not every programmer is going to implement their own lock-free algorithms (http://en.wikipedia.org/wiki/Non-blocking_algorithm). Experts write such algorithms, and other programmers will build their applications on top of those libraries. And even more programmers will use abstractions that aren't even libraries, but language-level abstractions.
I would say it more strongly. Threading is like crypto: unless your full time job is writing threading libraries don't even try to write your own.
I can't say I agree with this. With threading there are certainly extra things that always have to be in the back of your mind, however saying you have to specialize in only writing threading libs is a bit extreme.