Как стать автором
Обновить

Mutex в Java?

Уровень сложностиПростой

А вы заметили, что хулиганы на заборах уже не пишут? Кажется, я знаю почему. Они все узнали про интернет.

На просторах интернета есть статьи, объясняющие что такое Mutex в Java. К примеру, на платформе Java Rush - В чем разница между мьютексом, монитором и семафором. Приведу пару слов из статьи:

Мьютекс — это специальный объект для синхронизации потоков. Он «прикреплен» к каждому объекту в Java — это ты уже знаешь:)

Слава богу, лично я такого не знаю. В статье дается чудное описание что такое mutex в Java. Нагуглил я таких статей не одну, что пугает. Люди и на собеседованиях просят рассказать, что такое mutex в Java.

Многие из вас скажут: «И что?». А то, что в Java нету понятия mutex. Не найдете вы его в спецификации языка, не найдете вы его и в стандартной библиотеке Java. Думается мне кто-то притащил это понятие в Java из С++, там действительно есть класс mutex, так же есть в Go. Максимум что можно притащить за уши в Java, так это понятие a mutual-exclusion lock. Упоминается в спецификации языка Java в главе 14.19. The synchronized Statement:

A synchronized statement acquires a mutual-exclusion lock (§17.1) on behalf of the executing thread, executes a block, then releases the lock. While the executing thread owns the lock, no other thread may acquire the lock.

Базовый механизм общения между потоками в Java это синхронизация, которая основана на использования специального встроенного в объекты замка, называемого монитором, оно же intrinsic lock, оно же monitor lock. Никаких mutex-ов нигде не упоминается.

Хотите разобраться в теме concurrency в Java? Читать статьи в интернете, конечно, полезно, но не забывайте критически относится ко всему что пишут. Эта тема не легкая, тут не может быть волшебной статьи, благодаря которой вы за вечер все начнете понимать.

От себя рекомендую источники, заслуживающие доверия:

В публикации хотел обозначить проблему ложной информации. Надеюсь никого не обидел. Всем добра.

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.