Почему блок finally используется при синхронизации метода в Java? - PullRequest
3 голосов
/ 26 января 2012

https://stackoverflow.com/a/180191

Здесь метод синхронизируется путем вызова System.nanoTime() в обычном блоке, а время окончания вызывается в блоке finally?

Было ли это сделано только длясообщить правильное время, даже если метод выдает исключение?или гарантирует еще больше: не только то, что он будет вызываться, но и сразу после метода (то есть, предотвращения переключения задач или аналогичного ...)?

Какова мотивация использования final модификаторов здесь?

1 Ответ

6 голосов
/ 26 января 2012

Единственная причина сделать это - убедиться, что второй nanoTime() вызывается даже при наличии исключений.

Нет никаких гарантий, связанных с переключением задач.

Какк модификаторам final, я думаю, что это просто вопрос личного стиля, и они не влияют на время.Как и человек, который написал этот ответ, я часто отмечаю переменные, которые фактически являются постоянными, как final.

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