Junior — Middle
Оё шумо метавонед намудҳои мавҷуди муқовимати мутақобил (mutex) -ро номбар кунед?
sobes.tech AI
Ҷавоб аз AI
Дарсони намудҳои гуногуни mutex (муҳофизати мутақобил) дар C/C++ вуҷуд доранд, ки дар иҷро ва имкониятҳо фарқ мекунанд:
- Mutex оддӣ (оддӣ) — механизмҳои асосии бастани, ки дастрасии истисноиро ба манбаъ таъмин мекунад.
- Mutex recursive — имкон медиҳад, ки ҳамон як сӯрохи якчанд маротиба mutex-ро ба даст орад, бидуни бастани ҳамдигар.
- Timed mutex — mutex, ки бо маҳдудияти вақт кӯшиш кардан мумкин аст.
- Error-checking mutex — mutex, ки хатоҳоро санҷида, масалан, кӯшиши дубора ба даст овардани он аз ҷониби ҳамон сӯрохи, хато меорад.
Дар китобхонаи стандартии C++11 намудҳои зерин дастрасанд:
std::mutexstd::recursive_mutexstd::timed_mutexstd::recursive_timed_mutex
Маслиҳат барои истифодаи std::recursive_mutex:
#include <mutex>
std::recursive_mutex mtx;
void recursive_function(int count) {
mtx.lock();
if (count > 0) {
recursive_function(count - 1);
}
mtx.unlock();
}
Интихоби навъи mutex вобаста ба вазифа ва талаботҳои бастан аст.