База ответов ИНТУИТ

Теория и практика многопоточного программирования

<<- Назад к вопросам

При честной реализации замка, в каком порядке могут войти потоки в критическую секцию? doorway1[A]doorway1[B]doorway2[A]doorway2[B]doorway1[С] doorway2[С]waiting[С]waiting[B]waiting[A]

(Ответ считается верным, если отмечены все правильные варианты ответов.)

Варианты ответа
A, C, B
A,B, C(Верный ответ)
B, A, C(Верный ответ)
Похожие вопросы
Могут ли два потока одновременно выполнять метода входа в критическую секцию?
Как называется свойство алгоритма блокировки, при котором поток, завершивший входную секцию раньше, чем другие её начали, первым войдёт в критическую секцию
Всегда ли метод входа в критическую секцию завершается за конечное число шагов?
В идеальной реализации замка время обращения к замку T зависит от числа потоков N как:
Замки чтения-записи при установке reader-замка запрещают:
Алгоритм, приведённый ниже, относится к типу: for (int i = 0; i < N; i++) { lock.lock(); array[i].proceed(); lock.unlock(); }
Алгоритм, приведённый ниже, относится к типу: int oldValue = -1; if (oldValue != r.compareAndSet(oldValue, myValue)) { //someone was faster foo(); } else { //that’s my turn! bar();
Алгоритм, приведённый ниже, относится к типу: int oldValue = -1; while(oldValue != r.compareAndSet(oldValue, myValue)) oldValue = r.get(); proceed();
Операция изменения элемента в множестве занимает 3 микросекунды. Операция взятия замка является идеальной (константное время) и занимает 4 микросекунды. Оправдано ли использование оптимистичной синхронизации?
Допустима ли для регулярного регистра такая ситуация: writeStart[A](R=2)writeEnd[A](R=2)writeStart[A](R=3) read[B](R==3)read[B](R==2)writeEnd[A](R=3)