Буквально это означает, что он говорит. Ключевые операции API BufferedReader
реализованы с использованием блоков synchronized
, а эквивалентные операции в Scanner
- нет.
Это означает, что BufferedReader
может быть «безопасно» разделены между несколькими потоками , в то время как Scanner
не может. A Scanner
по своей сути не является потокобезопасным, даже если он обертывает потокобезопасный источник ввода.
1 - На самом деле, это не освобождает вас от мысли о многопоточности. Если у вас несколько потоков, вызывающих read(...)
операций на том же BufferedReader
без какой-либо формы координации, то нет способа узнать, какой поток будет читать какие символы из потока. По некоторым определениям это сделает использование без потоковой защиты. Расположение символов в правильных потоках обычно важно для правильности приложения.
http://stackoverflow.com/questions/2231369/scanner-vs-bufferedreader вопрос уже задан до – Priyamal
[Вот объяснение] (https://docs.oracle.com/javase/tutorial/essential/ concurrency/sync.html) синхронизации в Java. Но где именно вы видели эту цитату? – shmosel
Я не спрашиваю разницу между сканером и BufferedReader. Я спрашиваю, что означает синхронизация BufferedReader, а не сканера. Теперь понятно? –