Внешняя синхронизация по ArrayBlockingQueue - PullRequest
3 голосов
/ 23 июня 2011

Ключевое слово synchronize не отображается в исходном коде ArrayBlockingQueue.Означает ли это, что я могу свободно использовать его встроенную блокировку в «своих целях»?Или это может измениться в будущем?

1 Ответ

3 голосов
/ 23 июня 2011

В общем, я бы избегал этого, поскольку вы могли бы решить сделать это, но тогда кто-то еще в вашей команде или сторонней библиотеке (возможно, случайно) мог бы также полагаться на наличие "доступ к монитору.

Это может измениться в будущем, и вы, возможно, не единственный, кто думает об этом сейчас. Если вы можете достичь того, что вы хотите сделать, используя private блокировки и мониторы, или через другую систему (например, выполняя Futures), тогда это будет более надежным.

(Хотя это интересный вопрос, и, несомненно, некоторые люди сочтут мое мнение слишком оборонительным!)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...