Одновременные вызовы на блокировке на Java
-
25-10-2019 - |
Вопрос
Я знаю, что одновременное добавление в очередь STL в C ++ может вызвать проблемы, и способ решения этого добавляет блокировку мутекс вокруг всех вызовов добавления/удаления.
Но в данный момент я программируюсь на Java, и я использую Blockingqueue. В документации только говорится, что нить, которую вызывает/взять на себя объект блокировки, неявно блокируется до тех пор, пока не будет место, чтобы поместить/есть что -то, что можно взять соответственно. Тем не менее, он ничего не упоминает о одновременных звонках пута/принимайте звонки. Нужно ли мне защитить их с помощью блокировки Mutex?
Решение
Нет, блокирующие вопросы защищены нитью. Из Документы:
Реализации BlockingQueue безопасны. Все методы очереди достигают своих последствий атомно с использованием внутренних замков или других форм контроля параллелизма
Другие советы