Reentrancy - характеристика Intrinsic Lock в Java, он же Monitor Lock, он же Implicit Java Mutex.
Этот вид лока обеспечивается synchronized методами и блоками.
Так вот Reentrancy это обеспечение возможности получить потоку лок еще раз, если он уже им владеет. Так можно вызывать из синхронизированного метода синхронизированный метод этого же класса для одного и того же обьекта. Это блокировка по потоку, а не по вызову (как реализация мютекса в POSIX threads).
Внутренняя реализация подобного механизма следующая: лок содержит ссылку на поток, который сейчас им владеет, при этом в нем есть счетчик обладений, который каждый раз инкриментируется, когда поток повторно им овладевает, когда этот счетчик обнуляется, то тогда и удаляется ссылка на поток - и лок считается свободным.
Этот вид лока обеспечивается synchronized методами и блоками.
Так вот Reentrancy это обеспечение возможности получить потоку лок еще раз, если он уже им владеет. Так можно вызывать из синхронизированного метода синхронизированный метод этого же класса для одного и того же обьекта. Это блокировка по потоку, а не по вызову (как реализация мютекса в POSIX threads).
Внутренняя реализация подобного механизма следующая: лок содержит ссылку на поток, который сейчас им владеет, при этом в нем есть счетчик обладений, который каждый раз инкриментируется, когда поток повторно им овладевает, когда этот счетчик обнуляется, то тогда и удаляется ссылка на поток - и лок считается свободным.
Комментариев нет:
Отправить комментарий