Я понимаю, что основной c принцип мьютекса состоит в том, чтобы защитить указанный c кодовый путь от доступа более чем 1 потоком.
В моей текущей настройке у меня 10 потоков типа A ( A1-A10) и 10 ниток типа B (B1-B10). Под типом я подразумеваю потоки, которые работают с бесконечным l oop и вызывают методы A () и B () соответственно. Из этих методов A и B они оба вызывают функцию X ().
Я пытаюсь заблокировать определенную часть кода в функции X (), чтобы в любое время из пара A и B (A1: B1, A2: B2 ...) только 1 получает доступ к этому пути. Это означает, что либо A1 находится в этом кодовом пути, либо B1, аналогично либо A2 находится в этом кодовом пути B2 и так далее. Это нормально, если A1, A2, B3, B4, A5 .. одновременно обращаются к этому пути кода. Просто из пары AB к этому коду обращается только 1 поток.
Как это реализовать?
X() {
//
Lock this code so that either of (A1, B1) can access it
and so on..
//
}