Mutex часто дешевле канала для простого взаимного исключения, потому что решает более узкую задачу. Но утверждение о скорости нужно проверять на конкретной нагрузке.
Почему sync.Mutex быстрее, чем канал с буфером 1, для взаимного исключения?
Mutex часто дешевле канала для простого взаимного исключения, потому что решает более узкую задачу. Но утверждение о скорости нужно проверять на конкретной нагрузке.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Mutex часто дешевле канала для простого взаимного исключения, потому что решает более узкую задачу. Но утверждение о скорости нужно проверять на конкретной нагрузке.
Канал поддерживает передачу значений, ожидание отправителей/получателей и взаимодействие с select; это может добавлять накладные расходы. Mutex специально оптимизирован для lock/unlock. При сильной конкуренции итог зависит от scheduler и структуры критической секции. Выбирайте механизм по смыслу: mutex для общего состояния, канал для передачи работы и владения.