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

Задался вопросом понять, что есть что. Так как в разных источниках по-разному используют эти термины. И часто даже бывает, что в одной статье что-либо, например, кусок кода, называют монитором, в другой — это называют мьютексом (и бывает наоборот — объект, связанный с данным, и отвечающий на синхронизацию нитей, называют то мьютексом, то монитором). Вот и хочу разобраться, что есть что. (могу, конечно, привести множество цитат из этих источников, где употребляются эти термины, но думаю, это будет избыточно.)

3 комментария

Artem_Novikov
Рискну по памяти. synchronized (someobject), someobject — это мютекс, то есть общий ресурс, по которому происходит блокировка, а monitor по сути кусок кода, который выполняет блокировку по этому общему ресурсу. Ну как? В лекциях хорошо объясняли, но я уже забыл.
lichMax
Вообще-то в документации к Джаве монитором называется объект, по которому происходит синхронизация. Там сказано, что с каждым объектом в Джаве ассоциирован монитор, и монитор может быть захвачен нитью или отпущен. Его синоним — «внутренняя блокировка», или «объект внутренней блокировки». Одна в лекциях иногда монитор называют куском кода, а объект синхронизации — мьютекса. Поэтому я и хочу понять — где правильно. В интернете тоже везде по-разному написано.
Rosewelt
В документации правильно написано. Остальные ресурсы лишь пересказывают ее своими словами, иногда допуская ошибки.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.