А вот это уже не совсем понял. Я хочу сделать запись в файл многопоточно и чтение из файла с ещё одного потока. Если поток начинает записывать в файл и выполняет lock, а после поток пытается прочитать файл и делает опять lock этого же mutex, он будет ожидать unlock’а в функции записи?
Мьютекс нужен чтобы ОДИН код имел доступ К ОДНИМ ДАННЫМ ТОЛЬКО ОДИН.
Пока он их щучит, это данные ЕГО , никто другой эти данные НЕ ТРОНЕТ.
Как код отпустит мьютекс -- только тогда могут его захватить другие.