В стандартной библиотеке C++ (с C++11) определены следующие виды мьютексов:
std::mutex
: Базовый, нерекурсивный мьютекс. Поток, владеющий им, не может повторно захватить его без предварительного освобождения. Попытка повторного захвата одним потоком приводит к неопределенному поведению.
std::recursive_mutex
: Рекурсивный мьютекс. Позволяет одному потоку захватывать его несколько раз. Число захватов и освобождений должно совпасть, чтобы мьютекс стал доступен другим потокам. Увеличивает накладные расходы по сравнению с std::mutex
.
std::timed_mutex
: Тот же std::mutex
, но с
В стандартной библиотеке C++ (с C++11) определены следующие виды мьютексов:
std::mutex
: Базовый, нерекурсивный мьютекс. Поток, владеющий им, не может повторно захватить его без предварительного освобождения. Попытка повторного захвата одним потоком приводит к неопределенному поведению.
std::recursive_mutex
: Рекурсивный мьютекс. Позволяет одному потоку захватывать его несколько раз. Число захватов и освобождений должно совпасть, чтобы мьютекс стал доступен другим потокам. Увеличивает накладные расходы по сравнению с std::mutex
.
std::timed_mutex
: Тот же std::mutex
, но с
Register or sign in to get access to full answers for all questions from the question bank.