Mutex - mutual exclusion, или взаимное исключение, это вид семафора, которым в одно и тоже время может владеть только один поток, при этом все запросившие этот семафор потоки сохраняются в стеке мютекса, и контроль передается в порядке обращения по мере освобождения.
Представитель мютекса в джава это synchronized блок и метод, только вот блокировака налаживается на поток, а не на вызов как в POSIX mutex, в джава же один и тот же поток может захватывать уже захваченный собой intrinstic lock(так называется этот мютекс в терминологии ява), просто счетчик захвата этого лока увеличивается. Лок считается свободным когда у него счетчик==0, в этот момент вытирается ссылка на тред и он считается свободным.
Представитель мютекса в джава это synchronized блок и метод, только вот блокировака налаживается на поток, а не на вызов как в POSIX mutex, в джава же один и тот же поток может захватывать уже захваченный собой intrinstic lock(так называется этот мютекс в терминологии ява), просто счетчик захвата этого лока увеличивается. Лок считается свободным когда у него счетчик==0, в этот момент вытирается ссылка на тред и он считается свободным.
Комментариев нет:
Отправить комментарий