JavaRush/Java блог/Архив info.javarush/Что такое мьютекс и что такое монитор?
lichMax
40 уровень

Что такое мьютекс и что такое монитор?

Статья из группы Архив info.javarush
участников
Что такое мьютекс и что такое монитор? - 1Задался вопросом понять, что есть что. Так как в разных источниках по-разному используют эти термины. И часто даже бывает, что в одной статье что-либо, например, кусок кода, называют монитором, в другой — это называют мьютексом (и бывает наоборот — объект, связанный с данным, и отвечающий на синхронизацию нитей, называют то мьютексом, то монитором). Вот и хочу разобраться, что есть что. (могу, конечно, привести множество цитат из этих источников, где употребляются эти термины, но думаю, это будет избыточно.)
Комментарии (3)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Artem_Novikov
Уровень 40
11 мая 2017, 01:49
Рискну по памяти. synchronized (someobject), someobject — это мютекс, то есть общий ресурс, по которому происходит блокировка, а monitor по сути кусок кода, который выполняет блокировку по этому общему ресурсу. Ну как? В лекциях хорошо объясняли, но я уже забыл.
lichMax
Уровень 40
11 мая 2017, 16:56
Вообще-то в документации к Джаве монитором называется объект, по которому происходит синхронизация. Там сказано, что с каждым объектом в Джаве ассоциирован монитор, и монитор может быть захвачен нитью или отпущен. Его синоним — «внутренняя блокировка», или «объект внутренней блокировки». Одна в лекциях иногда монитор называют куском кода, а объект синхронизации — мьютекса. Поэтому я и хочу понять — где правильно. В интернете тоже везде по-разному написано.
Rosewelt
Уровень 25
11 мая 2017, 19:18
В документации правильно написано. Остальные ресурсы лишь пересказывают ее своими словами, иногда допуская ошибки.