Outros Locks e Semáforos
O mutex resolve a exclusão mútua e é o que você vai usar na esmagadora maioria dos casos. Mas ele é um ponto num espaço de escolhas, e às vezes o ponto errado. Cada primitiva deste capítulo muda um eixo do mutex, mantendo o resto.
O spinlock muda como a thread espera: em vez de dormir quando o lock está ocupado, ela fica girando. O semáforo muda quantas threads entram: em vez de uma só, ele deixa passar até um número que você escolhe, e com isso escapa da exclusão mútua pura e vira também uma ferramenta de coordenação. O read-write lock muda quem conflita com quem: várias threads que só leem podem entrar juntas, e a exclusão vale só quando alguém escreve.
Nenhum deles substitui o mutex como padrão. Cada um ganha do mutex numa situação específica e perde feio fora dela, e a parte que importa é reconhecer qual situação é qual.