Lockfree вперёд!
Думаю, начать можно с этого, т.к. тут Андрей пишет так сказать "с нуля" и всё по полочкам — хорошо подойдёт для затравки : Lockfree Data Structures (Keeping threads moving while avoiding deadlock) by Andrei Alexandrescu
Насколько помню, это была первая статья, которую я прочитал про lockfree... вначале долго пытался понять, о чём вообще речь
Вот тоже статья Андрея и M. Michael (это очень авторитетный человек в мире lockfree): Lockfree Data Structures with Hazard Pointers
Тут сразу приготовьтесь — чтение будет не из лёгкого
Вот ещё презентация by Andrei Alexandrescu: Lockfree Programming
В частности там можно поглядеть зачем всё это надо:
Advantages of lockfree
— Fast (~ 4 times faster than best mutexes)
— Deadlock immunity
— Livelock immunity
— Thread-killing immunity
— Asynchronous signal immunity
— Reentrancy is automatic
— Priority inversion immunity
Disadvantages
— Priorities uncontrollable (Can increase contention gratuitously)
— Hard to program (GC is a big helper, Hard even with GC)
— Use mutexes for 98% of the code
— Use CAS for 2% of the code to increase performance by 98%
Bjarne Stroustrup тоже не отстаёт. Lockfree Dynamically Resizable Arrays. Свежая и достаточно интересная статья.
В comp.programming.threads много инфы — вот например
Особое внимание уделяем постам Chris Thomasson и Joe Seigh, т.к. это люди реально разбирающиеся и делающие реальные вещи.
По каким именам можно ещё искать: Chris Thomasson, Joe Seigh, Maged M. Michael, Maurice Herlihy, Mark Moir, Tim Harris, Keir Fraser...
Вот ещё пара ссылок:
здесь — очень объёмная статья, точнее это докторская, поэтому там есть очень хорошее и подробное введение
здесь много статей и ссылок
здесь свежая статья с новыми структурами, достаточно занятная. если разобраться как это работает, то многое в этой жизни после неё покажется "орешками"...