— Когда одна нить заходит внутрь блока кода, помеченного словом synchronized,
то Java-машина тут же блокирует мютекс у объекта, который указан в круглых скобках после слова synchronized.
Больше ни одна нить не сможет зайти в этот блок, пока наша нить его не покинет.
synchronized (this) {
String s = name1; name1 = name2; name2 = s;
}
А если написать так:
synchronized (resultMap) {
...some code...
resultMap.put(fileName, max.getKey());
}
Мьютекс устанавливается у объекта resultMap.
Вопрос (возвращаясь к подчеркнутому тексту): могут ли несколько нитей зайти в этот блок synchronized?