2016-04-01 5 views
1

Я обожаю аннотацию @Synchronized, которую предлагает Groovy. It is a safer option, чем «синхронизированное» ключевое слово для Java, поскольку он использует локальную/закрытую переменную блокировки, а не объект «this». Однако в Groovy все правила могут быть нарушены. :)Имеет ли Groovy аннотацию для блочной синхронизации?

Я также знаю, что есть Lombok, библиотека Java, которая provides the same feature.

Но есть ли способ использовать аннотацию внутри метода, чтобы некоторая часть кода метода не была синхронизирована (для лучшей производительности) и других частей (по необходимости)?

В то время как я печатал этот вопрос, я, возможно, придумать одно решение на мой собственный вопрос:

  • метод Extract: создать новый метод, переместить блок кода, который нуждается в синхронизации в этом методе. Исходный код вызывает новый метод. Новый метод @Synchronized.

Звучит ли это правильно? Любые лучшие идеи?

ответ

2

Но есть способ использовать аннотацию внутри метода, так что некоторые из кода метода не синхронизируются (для лучшей производительности) и других частей (по необходимости)?

Нет, не существует. Подход, который вы описали как вариант, будет работать.

Смежные вопросы