2015-06-11 4 views
-1

Есть ли кто-нибудь, кто знает, почему почему-то синхронизируется вызов участника println PrintStream?О синхронизации в java.io.PrintStream

Например: public synchronized void println (String str)

Но почему там нет синхронизирован public void println (char[] chars)?

Большое спасибо!

+0

Какая версия Java? – Shahzeb

+1

В Java 6, 7 и 8 методы 'println' не синхронизированы. Тем не менее, они имеют синхронизированный блок в реализации метода - во всех этих методах 'println'. Итак, к какой версии Java вы относитесь? – Seelenvirtuose

+0

В Java 8 ни один из методов не синхронизирован, но они выполняют внутреннюю синхронизацию (оба из них). – marthursson

ответ

1

Я проверил given link

Согласно подписи метода он говорит println(String) синхронизируется и println(char[]) нет. Однако, когда вы читаете описание println(char[]), он говорит, что он печатает строковое представление заданного char[], то есть он неявно преобразует заданный char[] в String и вызывает метод println(String).

Так что даже если println(char[]) не синхронизирован, он синхронизируется неявно, вызывая println(String).

+1

ОК, получил его, благодаря! – user3236879

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