В классе мой учитель уточнил количество блокировок, необходимых для количества критических разделов в коде. Предположим, связанный список с операциями addNode(), deleteNode(), size()++, size()--
. Сколько блокировок требуется для двух процессов. Один или два?
В классе учитель обернул код следующим образом:
Процесс 1
getLock(lock1)
deleteNode()
getLock(lock2)
size()--
releaseLock(lock2)
releaseLock(lock1)
Процесс 2
getLock(lock1)
addNode()
getLock(lock2)
size()++
releaseLock(lock2)
releaseLock(lock1)
Действительно ли здесь нужны два замка? Я думаю, что блокировка 2 не нужна, так как она уже находится вокруг блокировки.