Доброго времени!
Скажите пожалуйста, где почитать, как работает mutex и ему подобные примитивы синхронизации на низком уровне? По сути все понятно, если поток выполняет:
mutex l;
f(){
...
l.lock();
...
l.unlock();
}
то другой поток при встрече с секцией, где происходит блокировка на строке
l.lock()
, блокируется пока первый поток не разлочит мутекс. У меня во многих программах нужно использовать многпоточность (std::thread), и различные блокировки. Работают (с точки зрения многопоточного взаимодействия) не плохо. Но я думаю, что они могли бы быть более эффективны, если бы я понимал как это работает на более низком уровне. (или я не прав?)
Интересен не только случай с mutex, но и вообще примитивы блокировки и работа с потоками. Есть ли интересная литература или туториалы на этот счет?
upd: интересует в случае unix like систем.
Всем спасибо!